home *** CD-ROM | disk | FTP | other *** search
/ 1,000 Game Manuals / 1000gamemanuals.iso / Odyssey / Computer Intro.txt < prev    next >
Text File  |  2001-10-17  |  137KB  |  3,382 lines

  1. ODYSSEY2 
  2.  
  3. COMPUTER INTRO 
  4. BY MAGNAVOX 
  5.  
  6. Contents 
  7.  
  8.  2. In The Beginning 
  9. 11. The World of the Computer 
  10. 20. Creepy Crawler 
  11. 28. Creepy Crawler Version II 
  12. 29. The Roll Mode - Your Program Trouble Shooter 
  13. 30. Addition*Program A 
  14. 35. Addition*Program B 
  15. 40. Addition*Program C 
  16. 46. One Digit Multiplication 
  17. 52. One Digit Division 
  18. 62. Area Problems Using "Go to Subroutine" and "Return" 
  19. 71. One Digit Addition FLash Card 
  20. 74. Three Ways to Enter and Output a Letter 
  21. 76. Six Letter Guess 
  22. 80. Message 
  23. 87. Operating Mode Review 
  24. 92. Glossary of Frequently Used Computer Terms 
  25. 100. Instruction Sets 
  26. 104. Program Sheets 
  27.  
  28. this gatefold will provide you with an electronic road map - please keep it  
  29. open as you work with your Odyssey2 computer 
  30.  
  31. Key Codes 
  32.  
  33. Key    Hex    Decimal 
  34. Code   Code   Equivalents 
  35. ------------------------- 
  36. 0       00      00 
  37. 1       01      01 
  38. 2       02      02 
  39. 3       03      03 
  40. 4       04      04 
  41. 5       05      05 
  42. 6       06      06 
  43. 7       07      07 
  44. 8       08      08 
  45. 9       09      09 
  46. A       20      32 
  47. B       25      37 
  48. C       23      35 
  49. D       1A      26 
  50. E       12      18 
  51. F       1B      27 
  52. G       1C      28 
  53. H       1D      29 
  54. I       16      22 
  55. J       1E      30 
  56. K       1F      31 
  57. L       0E      14 
  58. M       26      38 
  59. N       2D      45 
  60. O       17      23 
  61. P       0F      15 
  62. Q       18      24 
  63. R       13      19 
  64. S       19      25 
  65. T       14      20 
  66. U       15      21 
  67. V       24      36 
  68. W       11      17 
  69. X       22      34 
  70. Y       2C      44 
  71. Z       21      32 [incorrect] 
  72. Blank   0C      12 
  73. :       0A      10 
  74. $       0B      11 
  75. Clear   2E      46 
  76. ?       0D      13 
  77. .       27      39 
  78. +       10      16 
  79. -       28      40 
  80. *       29      41 
  81. ./.     2A      42 
  82. =       2B      43 
  83. Enter   2F      47 
  84.  
  85. Internal Flow 
  86.  
  87. [Illustration shows a box labeled Control Unit, boxes hanging off it labeled  
  88. Accumulator, Program Counter, Subroutine Return Address Register, ALU, and 
  89. Registers 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.  Also, arrows pointing to and from 
  90. the Control Unit and three boxes Labeled Memory (ROM) Instructions and 
  91. Constants, Keyboard, and Symbol/Sound Generator.  Also, an arrow going from 
  92. Symbol/Sound Generator to a box labeled TV Screen.] 
  93.  
  94. Keyboard 
  95.  
  96. [Illustration of the keyboard] 
  97.  
  98. Computer Intro is not for everyone - but if you're up for a rewarding mental 
  99. challenge, here is a fascinating entry point into a complex and highly 
  100. technical subject. 
  101.  
  102. The cartridge turns your Odyssey2 into a very special kind of computer.  It 
  103. won't balance your checkbook or do your incom tax or plot the course of a 
  104. spaceship to Mars. 
  105.  
  106. But it will giveyou some idea of how those computers do their work.  You 
  107. will begin to understand how a computer "thinks" and even begin to think like 
  108. a computer "thinks." 
  109.  
  110. The initial orientation and explanation are deliberately couched in the 
  111. most simplistic of terms.  They don't assume anything more on your part than a 
  112. working knowledge of basic arithmetic. 
  113.  
  114. After a brief explanation of how computers work and what they are made of - 
  115. you will start getting "hands on" experience and will learn by doing. 
  116.  
  117. You will learn how to enter a program - the first stop in learning how to 
  118. actually write your own. 
  119.  
  120. The gatefolds in the front and back of the manual provide you with 
  121. electronic road maps.  Keep these references in front of you and you will 
  122. clearly understand what's going on and how computers really compute. 
  123.  
  124. In The Beginning 
  125.  
  126. In the beginning, there were ten fingers - then a prehistoric Einstein 
  127. discovered his toes and man could count up to twenty. 
  128.  
  129. The oldest computing device we know of is the abacus.  It was first used in 
  130. China in the sixth century B.C. 
  131.  
  132. The very first digital computer was designed by Charles Babbage in the 
  133. 1830's.  It was more than a calculator.  Babbage designed it to be 
  134. programmable, and it would have been able to perform any arithmetic or logic 
  135. calculation.  
  136.  
  137. It was desgined to use punched cards for entering data and instructing the 
  138. machine with mathematical commands. 
  139.  
  140. [Illustration shows an abacus. Caption: Chinese Abacus] 
  141.  
  142. [Illustration of a person using an abacus] 
  143.  
  144. [Illustration of a Babbage computer. Caption: Babbage computer] 
  145.  
  146. There were two problems. 
  147.  
  148. Problem one.  Babbage's elaborate drawings called for a building the size 
  149. of a Dickensian shoe factory to house his "analytical engine." 
  150.  
  151. Problem two.  Babbagge died before the machine could be built. 
  152.  
  153. The first practical programmable computer was built in a basement at 
  154. Harvard University during World War II by IBM.  It weighed 35 tons! 
  155.  
  156. This machine used an exotic combination of electronic, electrical and 
  157. mechanical gear to do its arithmetic.  The instruction program was stored on a 
  158. punched paper tape that unreeled automatically.  Number were entered into the 
  159. machine on a panel covered with 1,440 dials! 
  160.  
  161. The first all-electronic computer was built at the University of 
  162. Pennsylvania shortly after the war ended.  ENIAC (Electronic Numerical 
  163. Integrator and Computer) was 1,000 times faster than its predecessor. 
  164.  
  165. But it filled a room 30 feet wide and 50 feet long.  Its 18,000 vacuum 
  166. tubes were connected by about a half-million soldering points. 
  167.  
  168. Today, everything that ENIAC could do and far more is perfromed by a device 
  169. slightly smaller in size. 
  170.  
  171. It is less than one quarter of an inch square - and can make more than one 
  172. million electronic decisions every second.  It is called a semiconductor.  It 
  173. is possible for one semiconductor in one of its newest forms - the 
  174. microprocessor - to account for more than 310 trillion separate functions. 
  175.  
  176. [Illustration of a bunch of gears.  Caption: Detail section of the Babbage 
  177. computer] 
  178.  
  179. And this is only the beginning! 
  180.  
  181. If computer technology continues to develop at its present rate, one of 
  182. these chips will be able to store about a quarter-million bits (the smallest 
  183. unit of computer information) in its memory within a few years. 
  184.  
  185. Ten years from this point, there will be hips capable of rememberin a 
  186. million bits of information. 
  187.  
  188. By 1990, the number of logic or decision-making computer circuits on these 
  189. one quarter inch chips are expected to number a quarter of a million. 
  190.  
  191. Today's large computers, selling in the one million dollar range and as big 
  192. as several filing cabinets, contain only about 10,000 logic circuits and a 
  193. main memory capacity of a few million bits. 
  194.  
  195. [Picture of a circuit board] 
  196.  
  197. [Picture of a few buttons, with one lit button labeled READY.  Superimposed is 
  198. a green sine wave] 
  199.  
  200. [Picture of a chip, with some forcepts reaching to grab something.] 
  201.  
  202. As microprocessor technology progresses, computers may be developed that 
  203. understand human speech. 
  204.  
  205. It is even possible that they can be taught to read handwriting! 
  206.  
  207. The microprocessor in your Odyssey2 is infinitely more sophisticated than 
  208. the mathematical marvels that were teh state of the art in the forties and 
  209. fifties.  
  210.  
  211. The technology of the microprocessor is unquestionably going to 
  212. revolutionize the way the world works - and the way you'll live.  A computer 
  213. will control your car's automatic transmission and fuel injection system. 
  214.  
  215. A computer will monitor fire and burglar alarm systems in your home. 
  216.  
  217. The lights in your home will be computerized.  So will the locks on the 
  218. doors and windows. 
  219.  
  220. [Picture of another circuit board] 
  221.  
  222. [Picture of a display tube with a hand operating a control on it] 
  223.  
  224. A computer will even water the lawn. 
  225.  
  226. A computer will do your shopping from the house - and pay your bills 
  227. without you writing checks. 
  228.  
  229. Computers will simulate three dimensional space for architects to help them 
  230. mentally walk around their houses before they're built. 
  231.  
  232. Computers will alert doctors to patient problems that would be 
  233. imperceptible under today's circumstances. 
  234.  
  235. Computers will help composers hear their music as they're writing it - even 
  236. if it's too complicated for them to play. 
  237.  
  238. Businessmen can have electronic simulations of their companies in their 
  239. attache cases. 
  240.  
  241. We are really still just at the very beginning of the computer age.  You 
  242. have picked a very good time to get involved. 
  243.  
  244. [Picture of some sort of control panel, with an image of cars on a freeway 
  245. double exposed on top of it] 
  246.  
  247. [Picture of a circuit board] 
  248.  
  249. The World of the Computer Is Strange and Wondrous 
  250.  
  251. Computers have already carried man to the moon - to Mars - and far beyond. 
  252.  
  253. They lie at the heart of fearsome weapons systems. 
  254.  
  255. They fly planes - monitor automobile engines - run factories - and even 
  256. translate languages. 
  257.  
  258. All of these with the brain power of a good screwdriver. 
  259.  
  260. Congratulations!  You have just completed your first lesson. 
  261.  
  262. You are much smarter than any computer at the present state of the art! 
  263.  
  264. For all of its awesome capabilities, the computer is nothing more than a 
  265. rather simple-minded tool. 
  266.     
  267. But once you learn how to use it, you'll have more power at your command 
  268. than Julius Caesar ever dreamed of. 
  269.  
  270. A computer has few basic talents. 
  271.  
  272. It can add - and it can move numbers around. 
  273.  
  274. A computer never forgets - and computers don't make mistakes.  (If a 
  275. computer churns out misinformation, there's a mistake in the program. 
  276. Computers are utterly faithful in following instructions.) 
  277.  
  278. Big deal.  Computers can't multiply, divide, or even subtract the way you 
  279. do.  But what a computer does do, it accomplishes with absolutely astonishing 
  280. speed.  
  281.  
  282. Your Odyssey2 can make over 100,000 electronic decisions every second - and 
  283. there are computers around that are more than ten times faster than that! 
  284.  
  285. To multiply, Odyssey2 simply adds number together at an incredible speed. 
  286. To subtract, it moves numbers around in a special way so that adding them 
  287. together will give the correct answer.  This sounds like doing it the long way 
  288. - but when you're that fast at addition, the juggling act becomes worthwhile. 
  289.  
  290. It's not all that hard to talk with a computer.  It only understands two 
  291. words.  Yes - and no.  Yes - means that an electrical pulse is tickling the 
  292. computer's sensitivities.  No - means that no electrical pulse is going 
  293. through.  
  294.  
  295. The symbol for "yes" in computer language is 1. 
  296.  
  297. The symbol for "no" is 0. 
  298.  
  299. Once you have memorized 0 and 1, you have memorized the entire alphabet of 
  300. the only language computers speak in any country of the world. 
  301.  
  302. This is called a binary system because there are only two symbols involved. 
  303.  
  304. It's sort of a code.  Here's the key. 
  305.  
  306. Binary Numbers and Their Decimal Equivalents. 
  307.  
  308. 1=0001  5=0101  9=1001  13=1101 
  309. 2=0010  6=0110 10=1010  14=1110 
  310. 3=0011  7=0111 11=1011  15=1111 
  311. 4=0100  8=1000 12=1100  16=0001 0000 
  312.  
  313.  
  314. Letters of the Alphabet and Their Binary Code Equivalents. 
  315.  
  316. Keyboard
  317. Letter     Binary      Decimal Hexidecimal
  318.  
  319. A          0010 0000   32      20
  320. B          0010 0101   37      25
  321. C          0010 0011   35      23
  322. D          0001 1010   26      1A
  323. E          0001 0010   18      12
  324. F          0001 1011   27      1B
  325. G          0001 1100   28      1C
  326. H          0001 1101   29      1D
  327. I          0001 0110   22      16
  328. J          0001 1110   30      1E
  329. K          0001 1111   31      1F
  330. L          0000 1110   14      0E
  331. M          0010 0110   38      26
  332. N          0010 1101   45      2D
  333. O          0001 0111   23      17
  334. P          0000 1111   15      0F
  335. Q          0001 1000   24      18
  336. R          0001 0011   19      13
  337. S          0001 1001   25      19
  338. T          0001 0100   20      14
  339. U          0001 0101   21      15
  340. V          0010 0100   36      24
  341. W          0001 0001   17      11
  342. X          0010 0010   34      22
  343. Y          0010 1100   44      2C
  344. Z          0010 0001   32[BAD] 21
  345.  
  346.  
  347. Working with endless daisy chains of 0's and 1's would be more than tedious 
  348. for the human brain - but the computer is really good at it. 
  349.  
  350. The inside of a computer is mainly a series of little electronic gates.  0 
  351. - the absence of an electrical pulse - leaves the gate open.  1 - the presence 
  352. of an electrical pulse - closes the gate.  And remember - the electronic gates 
  353. in your Odyssey2 computer are opening and closing at the rate of 100,000 times 
  354. every second. 
  355.  
  356. You will enter programs in your Odyssey2 through either the hexidecimal or 
  357. assembler language (these will be explained later).  The Odyssey2 will then 
  358. change the data and instruction sets entered into binary language (1's and 
  359. 0's) and store that information in the Memory and in the registers. 
  360.  
  361. The actual computing is done by the computer's Central Processing Unit 
  362. (CPU).  The CPU in your Odyssey2 is composed of the Accumulator (a working 
  363. register which stores data temporarily); the Program Counter (a working 
  364. register which locates and identifies the instruction sets and keeps them in 
  365. order); the Registers (in which data, implemented by the programmer, is 
  366. stored); the Sub-Routine Return Register (which is used with a certain 
  367. instruction set); the Arithmetic Logic Unit (ALU); and the Control Unit. 
  368.  
  369. The Control Unit directs the flood of electronic traffic traveling through 
  370. the computer and controls the data flow between the different components of 
  371. the computer.  For example, it regulates the flow of information bweteen the 
  372. Memory and Arithmetic Logic sections and also orders processeddata to move 
  373. from the Memory to the Output terminal.  The Output terminal of your Odyssey2 
  374. computer is the screen of your television set. 
  375.  
  376. The Arithmetic Logic Unit is where the computer teaches numbers to tap 
  377. dance.  Its nickname is "number cruncher."  It acts on the binary data fed 
  378. into the computer's memory and registers - and then changes them according to 
  379. the programmed instructions. 
  380.  
  381. Now, you're ready to learn by doing.  You're going to enter a program into 
  382. your computer.  Open the fold-out at the front of the book and you'll see what 
  383. happens to everything along the way. 
  384.  
  385. Important point.  The neat thing about computers is that they will always 
  386. follow your instructions with unflagging good faith.  The dumb thing about 
  387. computers is that they will only do what you have instructed them to do. 
  388.  
  389. It's very important to make sure that you enter every step and do it right. 
  390. If you make an error, the computer is going to make an error. 
  391.  
  392. Be sure that the power to your Odyssey2 console is turned off.  Insert the 
  393. COMPUTER INTRO cartridge into the console.  Be sure the label side is facing 
  394. the alpha-numeric keyboard.  Now, turn on the power. 
  395.  
  396. You're going to be talking with your Odyssey2 computer through the 
  397. keyboard.  It will talk back to you over your television screen. 
  398.  
  399. [Illustration of the Odyssey2 keyboard] 
  400.  
  401. Let's take a brief trip around the keyboard.  It has forty-eight keys. 
  402. Each key has been encoded in the computer languages we're going to be using. 
  403. You'll find this code on the gatefold at the front of the book. 
  404.  
  405. The keyboard also contains some surprises - four games that have been 
  406. pre-programmed in the cartridge. 
  407.  
  408. Press 2 on the alpha-numeric keyboard.  A FLASH CARD addition game will 
  409. appear on your television set.  An unsolved addition problem flashes on your 
  410. screen.  You enter the solution through the keyboard.  If the answer is less 
  411. tha 10, preface the number with a 0. (Important!  Always use the numeral 0 at 
  412. the top of the keyboard when entering a 0.)  If you give a wrong answer, an 
  413. angry NO will appear on the screen.  If you give a correct answer, it will 
  414. appear in its proper position.  To bring another problem to the screen, summon 
  415. it from the computer by pressing any key. 
  416.  
  417.  
  418. Adding numbers is no big deal until you see how many addition problems you 
  419. can solve in one minute.  If you keep trying to beat your own record or 
  420. another player, you can't help but sharpen your skills. 
  421.  
  422. Press RESET, then press 3 on the alpha-numeric keyboard and you're into 
  423. COMPUTER TELEPATHY!  It's a high-low game.  The computer secretly chooses a 
  424. number between 00 and 99.  The secret number won't appear on the screen - but 
  425. a question mark will.  You make a guess at the correct number and enter it 
  426. into the computer.  Your guess will appear on the screen.  It will be followed 
  427. by an H if it is higher than the computer's secret number - or an L if it is 
  428. lower.  If you guess correctly, the nuber will be followed by an X.  Play 
  429. against an opponent and see who can guess the computer's secret number in the 
  430. fewest number of guesses. 
  431.  
  432. Now, press RESET, then press 4 on the alpha-numeric keyboard.  BETWEEN THE 
  433. SHEETS appears on the screen.  You'll see three sets of numbers.  Example: 03 
  434. 07 00. 
  435.  
  436. The first two numbers are the sheets.  The computer has thought of another 
  437. number which it is keeping to itself.  The last number is your score.  If you 
  438. think the computers secret number is between 03 and 07 press YES on the 
  439. alpha-numeric keyboard.  If you don't think it falls between 3 and 7, press 
  440. NO.  If you are correct, you score a point and the number will apear between 
  441. the 3 and 7.  If you are wrong, the computer rewards you with a couple of 
  442. BEEPS right in the ear and your score remains the same. 
  443.  
  444. Press RESET, then press 1 and a series of blocks appears on the screen. 
  445. The blocks flahs in random order and ar accompanied by a buzzing sound.  We 
  446. call this spooky effect "THE CREEPY CRAWLER."  You can call it anything you 
  447. want.  
  448.  
  449. We can re-program The Creepy Crawler to display other symbols on the 
  450. screen.  There is a large selection of graphics in the memory of your 
  451. Odyssey2.  You'll find the complete collection in the fold-out at the back of 
  452. the book. 
  453.  
  454. The Creepy Crawler program is quite short and represents a good starting 
  455. point.  We're going to follow this and succeeding programs with a sort of road 
  456. map so you can see where your input goes and what the various parts of the 
  457. computer do with it. 
  458.  
  459. There are two ways you can program your computer.  You can speak 
  460. HEXIDECIMAL code (machine language).  An instruction would look like this: 60. 
  461.  
  462. Your computer takes 60 and converts it into its binary equivalent: 0110 
  463. 0000.  Notice that this binary translation has eight digits.  These are called 
  464. BITS.  Bits are handled by the computer in groups of eight.  One group is 
  465. called a BYTE.  A byte is the smallest piece of information a computer can 
  466. work with. 
  467.  
  468. In Odyssey2 Hexidecimal language, 60 means "Load a value into Register 0." 
  469. (A register is a place where a computer stores information.  There are sixteen 
  470. registers in your Odyssey2.  Each register has room for one byte of 
  471. information.)  
  472.  
  473. The second computer language your Odyssey2 understands in called ASSEMBLER. 
  474. Assembler uses alpha-numeric symbols to input binary code instructions.  An 
  475. instruction in Assembler is more phonetic than Hex - but it is also longer. 
  476.  
  477. Example: LDV.0.38 means - Load a value into register 0 - and that value is 
  478. 38.  (Important: Be sure to enter the periods in the assembler instructions or 
  479. the computer will not know what you're talking about.) 
  480.  
  481. In the back of the book, you'll find a complete chart of Instruction Sets 
  482. for your Odyssey2. 
  483.  
  484. INSTRUCTION SETS are the codes that tell your computer what you want it to 
  485. do with the data you're going to give it. 
  486.  
  487. Also Important: "0" is the equivalent of zero in the numeric section of 
  488. your keyboard.  "O" is the letter of the alphabet. 
  489.  
  490. Now, open the gatefold at the back of the book.  You'll find a flow chart 
  491. that tells you how to get into the various operating modes of your Odyssey2. 
  492. These modes are for displaying data in the registers, entering and executing a 
  493. program, rolling through a program to check data and much more. 
  494.  
  495. Leave the front and back gatefolds open.  You'll have your reference 
  496. material right in front of you. 
  497.  
  498. We are now ready to re-program the fearsome Creepy Crawler.  First, we'll 
  499. enter in Hex - and then we'll do a variation in Assembler. 
  500.  
  501.  
  502. Creepy Crawler 
  503.  
  504. Press the POWER BUTTON OFF and ON to clear the computer. 
  505.  
  506. Press RESET "Command" appears on your screen.  Your computer is in the COMMAND 
  507. mode and ready to accept instructions.  It knows you want it to do something 
  508. but doesn't yet know what. 
  509.  
  510. Press P "Program" appears on the screen.  "Aha," thinks the computer. 
  511. "Somebody wants to enter a program!  I wonder what language this person will 
  512. speak!"  
  513.  
  514. Press M "Hex Input" appears on the screen.  The computer now knows you will be 
  515. communicating in HEX.  You're going to be using the Hexidecimal Operational 
  516. Code (OP CODE). 
  517.  
  518. Press I Step 00 appears on the screen and the computer is ready and waiting to 
  519. accept data. 
  520.  
  521.  
  522. 00 
  523.  
  524. Press 60 This is Op code for Load Register 0.  Register 0 is one of sixteen 
  525. registers in your Odyssey2 that make up part of its Random Access Memory 
  526. (RAM).  Each register is a small memory devide that provides temporary storage 
  527. for data and instructions which will eventually be needed by the ARITHMETIC 
  528. LOGIC UNIT (ALU) - the place where all simple reasoning and arithmetic 
  529. operations are performed.  Look at the registers in the computer as sixteen in 
  530. and out boxes on a desk that is shared by both you and the Arithmetic Logic 
  531. Unit.  
  532.  
  533. Press ENTER Program Step 01 appears on the screen.  Register 0 has now been 
  534. activated to accept your entry upon execution of the program.  (The program 
  535. steps you enter into the computer do not actually become functional until you 
  536. press E [EXECUTE] at the completion of the program.) 
  537.  
  538.  
  539. 01 
  540.  
  541. Press 3A You have just selected an electronic figure from your computer's 
  542. gallery of electronic art and symbols, which are stored in the symbol/sound 
  543. generator.  You'll find the entire gallery in the fold-out at the back of the 
  544. book.  We've selected the little man as an example, but you can actually use 
  545. any of the figures or symbols for this program.  They have been permanently 
  546. stored in your computer. 
  547.  
  548. There are two parts to the memory unit in your computer.  The ROM (Read Only 
  549. Memory) contains the instruction sets and constants to be used in programming. 
  550. (The constants may be repetitive numbers needed for mathematical computation 
  551. by the ALU - Arithmetic Logic Unit, or they may be letters, numbers, or 
  552. symbols which you have entered into the Odyssey21 in a program which will 
  553. remain the same throughout the program.  See the program "Message.")  The 
  554. other part of the computer's memory is called RAM (RANDOM ACCESS MEMORY). 
  555. This memory component is like a blackboard.  Programs, instruction sets and 
  556. constants can be entered and later erased so that new data can be entered. 
  557. You're writing this program on the RAM component of the microprocessor in your 
  558. Odyssey2. 
  559.  
  560. Press ENTER Program step 02 appears on the screen.  The little man will be 
  561. loaded into Register 0. 
  562.  
  563. 02 
  564.  
  565. Press 61  This is Op Code for LOAD REGISTER 1.  It tells your computer you  
  566. want to give input to that data storage unit. 
  567.  
  568. Press ENTER  Prgram step 03 appears on the screen - and the door to Register 1 
  569. will open to receive data 
  570.  
  571. 03 
  572.  
  573. Press 0C  This is Op Code for a blank like the space between words in a 
  574. sentance.  
  575.  
  576. Press ENTER  Program step 04 appears on your screen.  The blank will be loaded 
  577. in to Register 1. 
  578.  
  579. 04 
  580.  
  581. Press 6B  This is Op Code for positioning.  You are opening the door to 
  582. Register B and telling it you want it to display the little man at a certain 
  583. place on the screen upon execution of the program.  You'll let it know where. 
  584.  
  585. Press ENTER  Program step 05 appears.  The door to Register B will open. 
  586.  
  587. 05 
  588.  
  589. Press 00  This entry tells the computer you will want it to display the little 
  590. man at the furthest left position on the screen. 
  591.  
  592. Press ENTER  Program step 06 appears on your screen.  The positioning 
  593. information will be loaded into Register B. 
  594.  
  595. Register B is the register that positions symbols or characters on the screen. 
  596. It has been given eleven positions.  00 is the furthest left.  0A is the 
  597. furthest right.  When Register B outputs on the screen, it automatically 
  598. increments or advances by one.  If we output a symbol in 00 (position one), 
  599. the symbol will appear in the first position and Register B will then advance 
  600. automatically to position 2 (01).  If Register B outputs in the last position 
  601. (0A), it automatically resets itself back to the first position (00) on the 
  602. next step.  Whatever data was in that first position will be replaced by the 
  603. new input. 
  604.  
  605. 06 
  606.  
  607. Press C0  This is the Op Code that tells the computer you are going to want to 
  608. bring that little man to the screen.  You have given him a way to get out of 
  609. Register B. 
  610.  
  611. Press ENTER  Program Step 07 appears on the screen. 
  612.  
  613. 07 
  614.  
  615. Press C1  This is Op Code for telling the computer you want to bring that 
  616. blank in Register 1 to the screen. 
  617.  
  618. Press ENTER  Program step 08 appears on your screen to tell you everything is 
  619. going along smoothly. 
  620.  
  621. 08 
  622.  
  623. Press 05  It's sound effects time.  This is an Op Code that tells the computer 
  624. you will want to hear a one second buzz. 
  625.  
  626. Press ENTER  Program step 09 appears. 
  627.  
  628. 09 
  629.  
  630. Press 08  This Op Code tells the computer you want it to come with an 
  631. unlimited sequence of random numbers.  The computers that encipher and 
  632. decipher secret messages for governments do this everyday.  In the old days, 
  633. crypt keys remained constant and could be broken easily.  Today, they change 
  634. constantly and at random.  Today, it takes one computer to break another's 
  635. cipher.  
  636.  
  637. Press ENTER  The random number instructions are entered into your computer. 
  638. Program step 10 appears on the screen. 
  639.  
  640. 10 
  641.  
  642. Press BB  This is Op Code for UNPACK Register B.  This is the Register we use 
  643. to position our little man on the screen.  This unpacking instruction takes 
  644. the random two digit number selected by the Accumulator and places one digit 
  645. in Register B (we are unpacking Register B, thus the Op Code BB) and the other 
  646. digit in the Register immediately following B, which is Register C.  The digit 
  647. in Register C is ignored.  Another example of unpacking - If we had unpacked 
  648. Register 0, the Op Code would have been B0, and one digit on the random number 
  649. would have been placed in Register 0 and the second digit in Register 1. 
  650.  
  651. To look at it another way, think of the Accumulator as a suitcase and the 
  652. registers as a tall dresser with 16 drawers.  You unpack two items from your 
  653. suitcase and put the first away in a drawer.  The second item will 
  654. automatically go to the drawer just below it. 
  655.  
  656. At the end of the Creepy Crawler program, a variation is written explaining 
  657. how to use the second digit of the random number which was loaded into 
  658. Register C, along with numerous figures to execute a random display of figures 
  659. on the screen. 
  660.  
  661. Through this unpacking instruction, the positioning Register (Register B) is 
  662. loaded from the Accumulator with a random number.  It is this instruction 
  663. which will cause our little man to travel to unpredictable places on the 
  664. screen.  (The Accumulator is a small memory device in the CPU that provides 
  665. temporary storage for the Arithmetic Logic Unit.  It can store the result of 
  666. an ALU operation or serve as an operation source [OPERAND] for the ALU.) 
  667.  
  668. Press ENTER  The unpacking instruction is entered and programm step 11 appears 
  669. on your screen. 
  670.  
  671. 11 
  672.  
  673. Press 12  This OP Code tells your computer you're going to want it to return 
  674. to a previously programmed step. 
  675.  
  676. Press ENTER  Program step 12 appears on the screen and the computer wonders 
  677. which program steps you wish repeated. 
  678.  
  679. 12 
  680.  
  681. Press 06  You have just told the computer you want it ot go through the 
  682. motions and always return to program step 06.  This was the place you wanted 
  683. the little man positioned on the screen which was subsequently combined with a 
  684. random number to change the positioning on the screen.  In effect, you have 
  685. now "looped" part of your program.  It will do its thing endlessly with 
  686. endless variations. 
  687.  
  688. Press ENTER  The computer salutes and will do as you ordered.  Program step 13 
  689. appears. 
  690.  
  691. Press RESET  The program is stored and you are back in the COMMAND mode. 
  692. "Command" appears on your screen. 
  693.  
  694. Press E  You have instructed the computer to execute your instructions.  The 
  695. fearsone Creepy Crawler appears on your screen.  The little man or whatever 
  696. symbol you have chosen will flash and buzz in different positions on the 
  697. screen.  
  698.  
  699. Forever. 
  700. Or, until you turn it off. 
  701. Or, change the program. 
  702. Whichever comes first. 
  703.  
  704. Important!  The power switch on your console is your program eraser.  Turn it 
  705. off and the program is cleared from the unit automatically.  Turn it on - 
  706. and you're ready to enter a new program. 
  707.  
  708. Now that you've entered Creepy Crawler in HEX, Try entering this variation in 
  709. ASSEMBLER language.  We will call this program Creepy Crawler with an All-Star 
  710. Cast of Thousands. 
  711.  
  712. First, turn the power off and on to erase any previous programming.  Now, 
  713. check the fold-out Operational Flow Chart to see how to get into the Assembler 
  714. Input Mode. 
  715.  
  716. Press RESET 
  717. Press P 
  718. Press A 
  719. Press I 
  720.  
  721. You are now in the Assembler Mode at program step 00 and ready to go.  One 
  722. thing.  Be sure to enter the periods as well as the letters and numbers. 
  723.  
  724. Press L 
  725. Press D 
  726. Press V 
  727. Press . 
  728. Press 2 
  729. Press . 
  730. Press 1 
  731. Press 3 
  732. Press enter 
  733.  
  734. We are now at Program step 02.  Continue entering in Assembler until you get 
  735. to Program step 13.  At this step you will begin entering a variety of symbols 
  736. in HEX.  There is no Assembler equivalent for them - so after Program step 12, 
  737. switch over to the HEX Input Mode.  Check the Operational Flow Chart and then 
  738. -  
  739. Press CLEAR 
  740. Press ROLL 
  741. Press CLEAR 
  742. Press M 
  743. Press I 
  744.  
  745. After you finish entering the program, press RESET to store the program - then 
  746. press E (EXECUTE) and watch what happens! 
  747.  
  748. Creepy Crawler Version II 
  749.  
  750.      Hex    Assembler 
  751. Step Code   Code       Byte   Remarks 
  752. ------------------------------------------------------------------------ 
  753. 00   62 13  LDV.2.13    2     Load Reg. 2 with 13 
  754. 02   08     RND         1     Accum. selects a random number 
  755. 03   BB     UNP.B       1     Unpack the random number into Reg. B and C 
  756. 04   9C     LDA.C       1     Load the Accum. from Reg. C 
  757. 05   E2     ADD.2       1     Add the contents of Reg. 2 to the Accum. 
  758. 06   AC     STO.C       1     Store the contents of the Accum. in Reg. C 
  759. 07   09     MOV         1     Load Accum. from a Program step 
  760. 08   0B     OTA         1     Output from Accum. to screen 
  761. 09   05     SIG         1     One second buzz 
  762. 10   00     NOP         1     No operation (used as pause) 
  763. 11   12 02  GTO.02      2     Instructs Odyssey2 to go to Program step
  764.                               02 and repeat program 
  765. 13   32                 1     Must enter Hex Mode (see page 27) 
  766. 14   33                 1 
  767. 15   3A                 1 
  768. 16   34                 1 
  769. 17   35                 1     Hex codes for various symbols.  These
  770. 18   37                 1     symbols with their Hex Code equivalents
  771. 19   3D                 1     are shown at the front of the book. 
  772. 20   3E                 1 
  773. 21   36                 1 
  774. 22   3C                 1 
  775.  
  776.  
  777.  
  778. The Roll Mode - Your Program Trouble Shooter 
  779.  
  780. The Roll Mode is for checking a program step to be sure it contains the 
  781. correct data.  It is also for making a change in a program step without having 
  782. to erase and re-enter an entire program. 
  783.  
  784. To enter the Roll Mode, press R if you are in either the Assember or HEX 
  785. input modes.  If you are in the EXECUTION mode, press RESET, the P, the M 
  786. (HEX) or A (ASSEMBLER) - and then press R. 
  787.  
  788. Then, press U to display the program steps upward (00-99) - or press D to 
  789. display the program steps downward (99-00).  The Roll Mode will always display 
  790. its information in HEX - even if you have been entering in Assembler. 
  791.  
  792. If everything checks out, roll to the last program step entered and press 
  793. CLEAR to re-enter the Assembler or HEX input mode. 
  794.  
  795. If you wish to make a change, press CLEAR at the program step you wish to 
  796. change.  The data will be cleared. 
  797.  
  798. Enter M for HEX or A for Assembler, depending on the code you have been 
  799. using.  
  800.  
  801. Press I - the program step number you wish to change will appear on the 
  802. screen.  
  803.  
  804. Enter the new data. 
  805.  
  806. Press RESET  You will be back in the COMMAND Mode and are ready to go on 
  807. with the program. 
  808.  
  809. The following series of programs will be presented with a running 
  810. commentary that will tell you exactly where the data is going and what is 
  811. happening to it.  These programs are written in HEX code.  At the end of each 
  812. program, you'll find a summary written in HEX as well as Assembler, so you can 
  813. enter each program in either language. 
  814.  
  815. Addition - Program A 
  816.  
  817. This program will add two one digit numbers and display the total.  Press the 
  818. POWER BUTTON off and on to clear the computer. 
  819.  
  820. Press RESET  "Command" appears on your screen.  Your computer is ready to 
  821. accept instruction. 
  822.  
  823. Press P  "Program"  appears on the screen. 
  824.  
  825. Press M  "Hex Input" appears on the screen.  You have told the computer you 
  826. will be using the Hexidecimal Operational Code (Op Code). 
  827.  
  828. Press I  Step 00 appears on the screen.  The computer is ready to accept data. 
  829.  
  830. 00 
  831.  
  832. Press 70  Press ENTER  You have told the computer you are going to input the 
  833. first number into Register 0. 
  834.  
  835. 01 
  836.  
  837. Press 04  Press ENTER  You instruct the computer to feed the second number of 
  838. the addition problems in to the Accumulator.  Remember, the Accumulator 
  839. provides temporary storage for the ALU where the numbers are going to be 
  840. crunched.  
  841.  
  842. 02 
  843.  
  844. Press E0  Press ENTER  This instructs the computer to add the contents of 
  845. Register 0 to the contents of the Accumulator and to store the sum in the 
  846. Accumulator.  
  847.  
  848. 03 
  849.  
  850. Press B1  Press ENTER  This Op Code is an unpacking instruction.  It tells the 
  851. computer to unpack the sum which has been stored in the Accumulator into 
  852. Register 1 and Register 2. 
  853.  
  854. 04 
  855.  
  856. Press 6B  Press ENTER  This starts a positioning instruction. 
  857.  
  858. 05 
  859.  
  860. Press 00  Press ENTER  This Op Code tells the computer to display subsequent 
  861. information at the 00 position on your TV screen. 
  862.  
  863. 06 
  864.  
  865. Press C1  Press ENTER  You tell the computer you will want to output the 
  866. information in Register 1 (first digit sum). 
  867.  
  868. 07 
  869.  
  870. Press C2  Press ENTER  You also want to output the data in Register 2 (Second 
  871. digit sum). 
  872.  
  873. 08 
  874.  
  875. Press 12  Press ENTER  This tells the computer you want it always to return to 
  876. a certain step and repeat the program from that point. 
  877.  
  878. 09 
  879.  
  880. Press 00  Press ENTER  00 is the step you want the computer to return to and 
  881. repeat.  Now, the computer will perform a continuous series of addition 
  882. problems.  
  883.  
  884. The program is now completed. 
  885.  
  886. Press RESET  The program is now stored in the computer's memory and you are 
  887. back in the COMMAND Mode. 
  888.  
  889. Press E  The computer executes your program.  A question mark appears on the 
  890. screen.  The computer is asking for two 1 digit numbers to add. 
  891.  
  892. Enter the First Number.  Press any digit from 0 through 9.  You will hear a 
  893. beep confirming entry.  The number will not appear on the screen.  That 
  894. instruction was not included in this program. 
  895.  
  896. Enter the Second Number.  Press any digit 0 through 9 and the sum total of the 
  897. two entered numbers will immediately appear on the screen. 
  898.  
  899. To enter a new problem, press any single digit number.  Then, press the other 
  900. single digit number. 
  901.  
  902. The previous sum will be replaced by the answer of the new addition problem as 
  903. soon as you have entered the second number of the new problem. 
  904.  
  905. Now, here is the addition problem you have just entered expressed in both HEX 
  906. and ASSEMBLER codes.  Note the following points. 
  907.  
  908. Important: Remember to get into the proper input mode for the language you are 
  909. using. 
  910. Press PMI for HEX. 
  911. Press PAI for Assembler. 
  912.  
  913. Very Important: Look at Program step 04.  It is a two Byte instruction. 
  914. Remember, in Binary each byte is composed of eight bits. 
  915. 6B (HEX = 0110 1011 (BINARY).  00 (HEX) = 0000 0000 (BINARY).  Therefore,  
  916. 6B 00 is a two byte instruction.  If you are in the HEX mode, each Byte must 
  917. be entered separately. 
  918.  
  919. Press 6B 
  920. Press ENTER 
  921. Press 00 
  922. Press ENTER 
  923.  
  924. If you are in the Assembler mode, both Bytes are fed into the computer with 
  925. one entry. 
  926.  
  927. Press L 
  928. Press D 
  929. Press V 
  930. Press . 
  931. Press B 
  932. Press . 
  933. Press 0 
  934. Press 0 
  935. Press ENTER 
  936.  
  937. In either language, you will see Program step 06 on the screen after the data 
  938. is entered.  Now, push the Power Button to erase any previous data...choose 
  939. one of the input codes...and enter the program.  Be sure to press ENTER after 
  940. each step. 
  941.  
  942.  
  943. Addition - Program A 
  944.  
  945.      Hex    Assembler 
  946. Step Code   Code       Byte   Remarks 
  947. ------------------------------------------------------------------
  948. 00   70     INP.0       1     Input Reg. 0 with 1st number 
  949. 01   04     INA         1     Input Accum. with 2nd number 
  950. 02   E0     ADD.0       1     Add Reg. 0 to Accum. 
  951. 03   B1     UNP.1       1     Unpack Accum. into REg. 1 and Reg. 2 
  952. 04   6B 00  LDV.B.00    2     Set output position to 00 
  953. 06   C1     OUT.1       1     Output Reg. 1, 1st digit sum 
  954. 07   C2     OUT.2       1     Output Reg. 2, 2nd digit sum 
  955. 08   12 00  GTO.00      2     Go to step 00 and repeat 
  956.  
  957.  
  958. Addition - Program B 
  959.  
  960. This program will also add two one digit number.  However, this time when you 
  961. enter the second number, the entire problem will appear on the screen. 
  962. (Example: 2+4=6).  You will be entering + and = signes in this program. 
  963.  
  964. First, press the POWER BUTTON off and on to clear the computer.  Then -  
  965.  
  966. Press RESET  "Command" will appear on your screen, and your computer is all  
  967. ears. 
  968.  
  969. Press P  "Program" appears on your screen. 
  970.  
  971. Press M  "Hex Input" appears on your screen.  The computer knows you will be 
  972. using Op COde (Hexidecimal Operation Code). 
  973.  
  974. Press I  Step 00 appears on the screen.  You are ready to input data. 
  975.  
  976. 00 
  977.  
  978. Press 70  Press ENTER  You tell the computer the first number will be entered 
  979. into Register 0.  01 appears on your screen. 
  980.  
  981. 01 
  982.  
  983. Press 04  Press ENTER  You tell the computer to accept the second number into 
  984. the Accumulator.  02 appears on the screen. 
  985.  
  986. 02 
  987.  
  988. Press 6B  Press ENTER  This starts an output position entry. 
  989.  
  990. 03 
  991.  
  992. Press 00  Press ENTER  The output position is set at 00 at the far left of the 
  993. screen. 
  994.  
  995. 04 
  996.  
  997. Press C0  Press ENTER  The output channel from Register 0 will open for the 
  998. first number of the addition problem. 
  999.  
  1000. 05 
  1001.  
  1002. Press 63  Press ENTER  The input channel to Register 3 will open. 
  1003.  
  1004. 06 
  1005.  
  1006. Press 10  Press ENTER  10 will be loaded into Register 3. 10 is Op Code for 
  1007. the (+) sign. 
  1008.  
  1009. 07 
  1010.  
  1011. Press C3  Press ENTER  The output channel from Register 3 will open so the (+) 
  1012. sign can be displayed on the screen. 
  1013.  
  1014. 08 
  1015.  
  1016. Press 0B  Press ENTER  The output channel of the Accumulator will open so that 
  1017. the second number can be displayed on the screen. 
  1018.  
  1019. 09 
  1020.  
  1021. Press 63  Press ENTER  The input channel to Register 3 will open. 
  1022.  
  1023. 10 
  1024.  
  1025. Press 2B  Press ENTER  2B will be loaded into Register 3.  2B is Op Code for 
  1026. the (=) sign. 
  1027.  
  1028. 11 
  1029.  
  1030. Press C3  Press ENTER  The output channel from Register 3 is opened so the (=) 
  1031. sign may be displayed on the screen. 
  1032.  
  1033. 12 
  1034.  
  1035. Press E0  Press ENTER  This instruction adds the contents of Register 0 to the 
  1036. contents of the Accumulator and stores the result in the Accumulator. 
  1037. Remember, Register 0 contained the first number of the addition problem.  The 
  1038. Accumulator held the second number. 
  1039.  
  1040. 13 
  1041.  
  1042. Press B1  Press ENTER  This program step unpacks the contents of the 
  1043. Accumulator storing the first digit of the sum in Register 1 and the second 
  1044. digit of the sum in Register 2. 
  1045.  
  1046. 14 
  1047.  
  1048. Press C1  Press ENTER  The output channel from Register 1 will open to let the 
  1049. first digit sum be displayed on the screen. 
  1050.  
  1051. 15 
  1052.  
  1053. Press C2  Press ENTER  The output channel from Register 2 will open to let the 
  1054. second digit sum be displayed on the screen. 
  1055.  
  1056. 16 
  1057.  
  1058. Press 12  Press ENTER  This begins an instruction to return to a previous 
  1059. step.  
  1060.  
  1061. 17 
  1062.  
  1063. Press 00  Press ENTER  The computer is instructed to return to step 00 and be 
  1064. ready to solve a new addition problem.  The old problemm will not erase from 
  1065. the screen until both digits of the new problem are entered. 
  1066.  
  1067. Press RESET  The program is now stored in the computer. 
  1068.  
  1069. Press E  The computer is ready to execute the program.  A question mark 
  1070. appears on the screen asking for input. 
  1071.  
  1072. Press any single digit number.  Nothing appears on the screen. 
  1073.  
  1074. Press a second single digit number.  The entire problem and the solution 
  1075. appear on the screen.  Both will remain there until two new digits are 
  1076. entered.  
  1077.  
  1078. Addition - Program B 
  1079.  
  1080.      Hex    Assembler 
  1081. Step Code   Code       Byte   Remarks 
  1082. ------------------------------------------------------------------
  1083. 00   70     INP.0       1     Input Reg. 0 with 1st number 
  1084. 01   04     INA         1     Input Accum. with 2nd number 
  1085. 02   6B 00  LDV.B.00    2     Set output position 
  1086. 04   C0     OUT.0       1     Output 1st number from Reg. 0 
  1087. 05   63 10  LDV.3.10    2     Load Reg. 3 with (+) sign 
  1088. 07   C3     OUT.3       1     Out Reg. 3, (/) + on screen 
  1089. 08   0B     OTA         1     Output 2nd number 
  1090. 09   63 2B  LDV.3.2B    2     Load Reg. 3 with (=) sign 
  1091. 11   C3     OUT.3       1     Output Reg. 3, (/) = on screen 
  1092. 12   E0     ADD.0       1     Add Reg. 0 to Accum. 
  1093. 13   B1     UNP.1       1     Unpack Accum. into Reg. 1 and Reg. 2 
  1094. 14   C1     OUT.1       1     Output Reg. 1, 1st digit sum 
  1095. 15   C2     OUT.2       1     Output Reg. 2, 2nd digit sum 
  1096. 16   12 00  GTO.00      2     Go to step 00 and repeat 
  1097.  
  1098.  
  1099. Addition - Program C 
  1100.  
  1101. After you enter this program a question mark on the screen asks you to press 
  1102. in two one digit numbers for the computer to add.  The first number appears on 
  1103. the screen followed by (+) sign.  When you press the second number, it appears 
  1104. on the screen followed by a (=) sign and the answer.  When the first digit of 
  1105. the next addition problem is entered, the first problem will disappear from 
  1106. the screen.  To begin, turn off the power to erase the previous program. 
  1107.  
  1108. Press RESET  You[sic] computer is in the "Command" Mode and ready to accept 
  1109. instructions.  
  1110.  
  1111. Press P  The computer enters the "Program" Mode. 
  1112.  
  1113. Press M  "Hex Input" appears on the screen.  The computer is ready to accept 
  1114. instructions in Op Code. 
  1115.  
  1116. Press I  Step 00 appears on the screen and the computer is ready for the 
  1117. program.  
  1118.  
  1119. 00 
  1120.  
  1121. Press 6B  Press ENTER  You are setting the output position of Register B. 
  1122.  
  1123. 01 
  1124.  
  1125. Press 00  Press ENTER  That output position is 00 at the far left of the 
  1126. screen.  
  1127.  
  1128. 02 
  1129.  
  1130. Press 70  Press ENTER  You tell the computer that the first number of the 
  1131. addition problem will be stored in Register 0. 
  1132.  
  1133. 03 
  1134.  
  1135. Press C0  Press ENTER  This tells the computer you will want it to output the 
  1136. contents of Register 0. 
  1137.  
  1138. 04 
  1139.  
  1140. Press 63  Press ENTER  You are preparing Register 3 to accept data. 
  1141.  
  1142. 05 
  1143.  
  1144. Press 10  Press ENTER  Register 3 will be loaded with a 10 - the code for a 
  1145. (+) sign.  You will find the complete code for all of the graphics stored in 
  1146. your computer on the fold-out at the back of the book. 
  1147.  
  1148. 06 
  1149.  
  1150. Press C3  Press ENTER  This will open the way to output the (+) sign from 
  1151. Register 3. 
  1152.  
  1153. 07 
  1154.  
  1155. Press 04  Press ENTER  This will open the Accumulator for future input. 
  1156.  
  1157. 08 
  1158.  
  1159. Press 0B  Press ENTER  The output channel of the Accumulator is set to open. 
  1160.  
  1161. 09 
  1162.  
  1163. Press 63  Press ENTER  You want to laod a value into Register 3. 
  1164.  
  1165. 10 
  1166.  
  1167. Press 2B  Press ENTER  That value is 2B - the code for the (=) sign. 
  1168.  
  1169. 11 
  1170.  
  1171. Press C3  Press ENTER  This will open the way to output the (=) sign from 
  1172. Register 3. 
  1173.  
  1174. 12 
  1175.  
  1176. Press E0  Press ENTER  The computer will then add the contents of Register 0 
  1177. to the Accumulator.  Register 0 has already been instructed to accept the 
  1178. first number in the addition problem (Step 02) - and the Accumulator has been 
  1179. instructetd to accept the second number. 
  1180.  
  1181. 13 
  1182.  
  1183. Press B1  Press ENTER  This Op Code will unpack the contents of the 
  1184. Accumulator (which contains the sum) into Register 1 and Register 2. 
  1185.  
  1186. 14 
  1187.  
  1188. Press C1  Press ENTER  This will open the output channel of Register 1. 
  1189.  
  1190. 15 
  1191.  
  1192. Press C2  Press ENTER  This will open the output channel of Register 2. 
  1193.  
  1194. 16 
  1195.  
  1196. Press 70  Press ENTER  This input is a pause operation.  It tells the computer 
  1197. to leave the first problem on the screen until another problem is entered. 
  1198.  
  1199. 17 
  1200.  
  1201. Press 6C  Press ENTER  Register C will be opened for loading. 
  1202.  
  1203. 18 
  1204.  
  1205. Press 0B  Press ENTER  Register C will be loaded with 0B - the Op Code for the 
  1206. decimal number 11, which is exactly the number of positions available on the 
  1207. screen.  
  1208.  
  1209. 19 
  1210.  
  1211. Press 67  Press ENTER  Register 7 will be ready for loading. 
  1212.  
  1213. 20 
  1214.  
  1215. Press 0C  Press ENTER  0C is Op Code for blank spaces as indicated in the 
  1216. computer graphics section in the fold-out at the back of the book.  Register 7 
  1217. will be loaded with blank spaces.  The computer will use these blank spaces to 
  1218. erase the old problem on the screen when the first digit of the new problem is 
  1219. entered. 
  1220.  
  1221. 21 
  1222.  
  1223. Press 9C  Press ENTER  The Accumulator will be loaded with the contents of 
  1224. Register C - the decimal number 11. 
  1225.  
  1226. 22 
  1227.  
  1228. Press 64  Press ENTER  This will open Register 4 to accept data. 
  1229.  
  1230. 23 
  1231.  
  1232. Press 00  Press ENTER  Register 4 will be loaded with 00. 
  1233.  
  1234. 24 
  1235.  
  1236. Press 02  Press ENTER  The amount in the Accumulator (11 - the number of 
  1237. positions on the screen) will be decremented (subtracted) by one each time 
  1238. this step is reached. 
  1239.  
  1240. 25 
  1241.  
  1242. Press C7  Press ENTER  Register 1 will output its blank spaces. 
  1243.  
  1244. 26 
  1245.  
  1246. Press 24  Press ENTER  This is a branch instruction - sort of a fork in the 
  1247. electronic road.  The computer is instructed to continue on to the next 
  1248. program step if the number in the Accumulator equals the number in Register 4 
  1249. (00).  
  1250.  
  1251. 27  
  1252.  
  1253. Press 24  Press ENTER  The computer is instructted to return to step 24 if 
  1254. the number in Register 4 is not equal to the Accumulator.  Step 24 will 
  1255. decrement the contents of the Accumulator (which originally was 11) by 1 each 
  1256. time until the Accumulator is reset at 00 to match Register 4.  Program steps 
  1257. 16 through 27 demonstrate how a computer erases by outputting blank spaces to 
  1258. the screen. 
  1259.  
  1260. 28 
  1261.  
  1262. Press 6B  Press ENTER  We are resetting Register B to return to its original 
  1263. output position once the Accumulator is equal to Register 4. 
  1264.  
  1265. 29 
  1266.  
  1267. Press 00  Press ENTER  The output position of Register B is set at the extreme 
  1268. left position of the screen. 
  1269.  
  1270. 30 
  1271.  
  1272. Press 12  Press ENTER  This Op Code instructs the computer to branch to 
  1273. another program step when the amount in the Accumulator equals 00. 
  1274.  
  1275. 31 
  1276.  
  1277. Press 03  Press ENTER  The step the cocmputer returns to is 03.  Now, you are 
  1278. able to enter and solve repeated addition problems. 
  1279.  
  1280. Press RESET  The program is stored. 
  1281.  
  1282. Press E  The program is executed.  See the beginning of the program for use 
  1283. instructions.  
  1284.  
  1285. Addition - Program C 
  1286.  
  1287.      Hex    Assembler 
  1288. Step Code   Code       Byte   Remarks 
  1289. ----------------------------------------------------------------
  1290. 00   6B 00  LDV.B.00    2     Set output position to 00 
  1291. 02   70     INP.0       1     Input 1st number to Reg. 0 
  1292. 03   C0     OUT.0       1     Output Reg. 0 
  1293. 04   63 10  LDV.3.10    2     Load Reg. with (+) sign 
  1294. 06   C3     OUT.3       1     Output (+) sign from Reg. 3 
  1295. 07   04     INA         1     Input to Accum. (second number) 
  1296. 08   0B     OTA         1     Output from Accum. 
  1297. 09   63 2B  LDV.3.2B    2     Load Reg. 3 with (=) sign 
  1298. 11   C3     OUT.3       1     Output (=) sign from Reg. 3 
  1299. 12   E0     ADD.0       1     Add Reg. 0 to Accum. 
  1300. 13   B1     UNP.1       1     Unpack Accum. to Reg. 1 and Reg. 2 
  1301. 14   C1     OUT.1       1     Output Reg. 1 
  1302. 15   C2     OUT.2       1     Output Reg. 2 
  1303. 16   70     INP.0       1     This is used as a pause operation 
  1304. 17   6C 0B  LDV.C.0B    2     Load Reg. C with Hex 0B (#11) 
  1305. 19   6C 0C  LDV.7.0C    2     Load Reg. 7 with blank spaces 
  1306. 21   9C     LDA.C       1     Load Accum. from Reg. C 
  1307. 22   64 00  LDV.4.00    2     Load Reg. 4 with 00 
  1308. 24   02     DEC         1     Subtract 1 from Accum. 
  1309. 25   C7     OUT.7       1     Output Reg. 7 (blank spaces) 
  1310. 26   24 24  BNE.4.24    2     Branch if Accum. does not = Reg. 4 
  1311. 28   6B 00  LDV.B.00    2     Set output position to 00 
  1312. 30   12 03  GTO.03      2     Go to step 03 and repeat 
  1313.  
  1314.  
  1315. One Digit Multiplication 
  1316.  
  1317. After you enter this program, a question mark will appear on the screen asking 
  1318. for input.  The first digit entered is the number you wish to multiply (the 
  1319. nultiplicand).  It appears on the screen with an (X) sign.  The second digit 
  1320. entered is the multiplier.  The complete problem will now appear on the screen 
  1321. along with the answer.  Odyssey2 solves multiplication through an addition 
  1322. process.  If the problem is 3 X 7, the computer will arrive at the answer by 
  1323. adding 7+7+7.  Program steps 00 through 11 are instructions which allow the 
  1324. problem to be displayed on the screen.  The mathematical operational sequence 
  1325. begins with step 12. 
  1326.  
  1327. First, press the POWER BUTTON off and on to erase the previous program. 
  1328.  
  1329. Press RESET  You are in the "Command" Mode. 
  1330.  
  1331. Press P  You enter the "Program" Mode. 
  1332.  
  1333. Press M "Hex Input" appears on the screen.  The computer is ready for Op Code 
  1334. instructions.  
  1335.  
  1336. Press I  Step 00 appears on the screen and the computer is ready for the 
  1337. program.  
  1338.  
  1339. 00 
  1340.  
  1341. Press 6B  Press ENTER  The output position of Register B is ready for setting. 
  1342.  
  1343. 01 
  1344.  
  1345. Press 00  Press ENTER  You set the output of Register B for the far left of 
  1346. the screen. 
  1347.  
  1348. 02 
  1349.  
  1350. Press 70  Press ENTER  The multiplicand is directed to be stored in Register 
  1351. 0.  
  1352.  
  1353. 03 
  1354.  
  1355. Press C0  Press ENTER  Register 0 is given an output channel. 
  1356.  
  1357. 04 
  1358.  
  1359. Press 66  Press ENTER  The door will be opened to Register 6. 
  1360.  
  1361. 05 
  1362.  
  1363. Press 29  Press ENTER  An (X) sign will be entered into Register 6. 
  1364.  
  1365. 06 
  1366.  
  1367. Press C6  Press ENTER  Register 6 is given an output channel. 
  1368.  
  1369. 07 
  1370.  
  1371. Press 71  Press ENTER  The multiplier will be stored into Register 1. 
  1372.  
  1373. 08 
  1374.  
  1375. Press C1  Press ENTER  The multiplier is given a way out of Register 1. 
  1376.  
  1377. 09 
  1378.  
  1379. Press 67  Press ENTER  The door to Register 7 is instructed to open. 
  1380.  
  1381. 10 
  1382.  
  1383. Press 2B  Press ENTER  2B is Op Code for (=).  The (=) sign will be loaded 
  1384. into Register 7. 
  1385.  
  1386. 11 
  1387.  
  1388. Press C7  Press ENTER  This will provide an output channel for Register 7. 
  1389.  
  1390. 12 
  1391.  
  1392. Press 90  Press ENTER  The Accumulator is instructed to be ready to accept data 
  1393. from Register 0.  This is the Register that holds the number you want to 
  1394. multiply.  The Accumulator will be loaded with the same value as the contents 
  1395. of Register 0 - however, Register 0 will continue to retain its data. 
  1396.  
  1397. 13 
  1398.  
  1399. Press E0  Press ENTER  The computer is instructed to add the contents of the 
  1400. Accumulator to Register 0.  Remember, that Odyssey2 multiplies by a series of 
  1401. addition steps.  This is the first addition step. 
  1402.  
  1403. 14 
  1404.  
  1405. Press A2  Press ENTER  The sum of the digits from the Accumulator and Register 
  1406. 0 will be stored in Register 2. 
  1407.  
  1408. 15 
  1409.  
  1410. Press 91  Press ENTER  The Accumulator will be loaded from Register 1 which 
  1411. holds the multiplier.  The Accumulator will now know the number of addition 
  1412. steps it must perform to arrive at an answer. 
  1413.  
  1414. 16 
  1415.  
  1416. Press 02  Press ENTER  This step will decrement the Accumulator which contains 
  1417. the multiplier by 1 so that the computer can keep track of how many addition 
  1418. steps have been made. 
  1419.  
  1420. 17 
  1421.  
  1422. Press A1  Press ENTER  The difference will be stored in Register 1. 
  1423.  
  1424. 18 
  1425.  
  1426. Press 63  Press ENTER  The door to Register 3 will open. 
  1427.  
  1428. 19 
  1429.  
  1430. Press 01  Press ENTER  01 will be stored in Register 3.  This will give the 
  1431. computer a reference point which will halt the addition process.  When the 
  1432. Accumulator contains the contents of Register 1 (the multiplier), it is 
  1433. compared to the contents of Register 3 (which is 01).  If the contents in 
  1434. Register 1, which is now in the Accumulator, and Register 3 coincide, the 
  1435. computer will stop adding.  If they are not equal, the computer will loop back 
  1436. and continue the addition process. 
  1437.  
  1438. 20 
  1439.  
  1440. Press 33  Press ENTER  This starts a branch operation. 
  1441.  
  1442. 21 
  1443.  
  1444. Press 25  Press ENTER  The computer is instructed to branch to step 25 if the 
  1445. contents of the Accumulator and Register 3 are equal.  In which case, the 
  1446. answer will be unpacked and displayed on the screen. 
  1447.  
  1448. 22 
  1449.  
  1450. Press 92  Press ENTER  The Accumulator will be loaded with the information in 
  1451. Register 2, which contains the data fed in Program Step 14. 
  1452.  
  1453. 23 
  1454.  
  1455. Press 12  Press ENTER  The computer is instructed to return to a previous step 
  1456. in the program if the conditions in program step 19 have not been met. 
  1457.  
  1458. 24 
  1459.  
  1460. Press 13  Press ENTER  The computer is instructed to return to step 13 and 
  1461. once aggain add the contents of Register 0 to the Accumulator.  (Register 0 
  1462. holds the multiplicand.) 
  1463.  
  1464. 25 
  1465.  
  1466. Press 92  Press ENTER  The Accumulator will be loaded with the contents of 
  1467. Register 2 which contains the sum of the addition operations.  We are almost 
  1468. at the end of the tunnel.  This operation is performed when the contents of 
  1469. the Accumulator and Register 3 are equal. 
  1470.  
  1471. 26 
  1472.  
  1473. Press B4  Press ENTER  This is a two digit unpacking operation, which has been 
  1474. explained in Addition Program A. 
  1475.  
  1476. 27 
  1477.  
  1478. Press C4  Press ENTER  An output channel for Register 4. 
  1479.  
  1480. 28 
  1481.  
  1482. Press C5  Press ENTER  An output channel for Register 5. 
  1483.  
  1484. 29 
  1485.  
  1486. Press 12  Press ENTER  You instruct the computer to return to a previous 
  1487. program step. 
  1488.  
  1489. 30 
  1490.  
  1491. Press 00  Press ENTER  That step is 00.  The computer will now be ready to 
  1492. accept a new multiplication problem. 
  1493.  
  1494. Press RESET  The program is stored. 
  1495.  
  1496. Press E  The program is executed. 
  1497.  
  1498.  
  1499. One Digit Multiplication 
  1500.  
  1501.  
  1502.      Hex    Assembler 
  1503. Step Code   Code       Byte   Remarks 
  1504. --------------------------------------------------------------
  1505. 00   6B 00  LDV.B.00    2     Set output position 
  1506. 02   70     INP.0       1     Multiplicand stored in Reg. 0 
  1507. 03   C0     OUT.0       1     Output multiplicand 
  1508. 04   66 29  LDV.6.29    2     Symbol (X) stored in Reg. 6 
  1509. 06   C6     OUT.6       1     Output Reg. 6; Reg.6=(X) 
  1510. 07   71     INP.1       1     Multiplier stored in Reg. 1 
  1511. 08   C1     OUT.1       1     Output Multiplier 
  1512. 09   67 2B  LDV.7.2B    2     Symbol (=) stored in Reg. 7 
  1513. 11   C7     OUT.7       1     Output Reg. 7 
  1514. 12   90     LDA.0       1     Load Accum. from Reg. 0 
  1515. 13   E0     ADD.0       1     Add Accum. to Reg. 0 
  1516. 14   A2     STO.2       1     Store sum in Reg. 2 
  1517. 15   91     LDA.1       1     Load Accum. from Reg. 1 
  1518. 16   02     DEC         1     Decrement Accum. by 1 
  1519. 17   A1     STO.1       1     Store difference in Reg. 1 
  1520. 18   63 01  LDV.3.01    2     Load Reg. 3 with 01 
  1521. 20   33 25  BEQ.3.25    2     Go to step 25 if Accum. = Reg. 3 
  1522. 22   92     LDA.2       1     Load Accum. from Reg. 2 
  1523. 23   12 13  GTO.13      2     Go to step 13 
  1524. 25   92     LDA.2       1     Load Accum. from Reg. 2 
  1525. 26   B4     UNP.4       1     Unpack two digits 
  1526. 27   C4     OUT.4       1     Output Reg. 4 
  1527. 28   C5     OUT.5       1     Output Reg. 5 
  1528. 29   12 00  GTO.00      2     Go to step 00 and repeat 
  1529.  
  1530.  
  1531. One Digit Division 
  1532.  
  1533.  
  1534. A question mark will appear on the screen.  The first number entered will be 
  1535. the dividend and it will be followed by a (./.) sign.  The second number 
  1536. entered will be the divisor.  It will appear on the screen along with an (=) 
  1537. sign and the answer.  Your Odyssey2 computer accomplishes division by a series 
  1538. of subtractions.  It's the Odyssey2 multiplication process in reverse. 
  1539.  
  1540. Note: There are two conditions in division that must be provided.  The first 
  1541. condition is when the divisor can be divided into the dividend equally. 
  1542. Example: 6/2 = 3.  The second condition is when the divisor cannot be divided 
  1543. into the dividend equally and there is a remainder.  Example: 9/2=4+R.  Your 
  1544. Odyssey2 has been instructed to display (+R) if there is a remainder.  This 
  1545. program provides branching instructions to satisfy both conditions. 
  1546.  
  1547. To begin, turn the POWER BUTTON off and on to erase any previous program. 
  1548.  
  1549. Press RESET  You are in the "Command" mode. 
  1550.  
  1551. Press P  You have entered the "Program" mode. 
  1552.  
  1553. Press M  "Hex Input" appears on the screen.  The computer is ready to accept 
  1554. instructions in Op Code. 
  1555.  
  1556. Press I  Step 00 appears on the screen, and you are ready to enter the 
  1557. program.  
  1558.  
  1559.  
  1560. 00 
  1561.  
  1562. Press 63  Press ENTER  The door to Register 3 will be opened. 
  1563.  
  1564. 01 
  1565.  
  1566. Press 00  Press ENTER  We call this "initialization" - a step to insure that 
  1567. Register 3 is set at absolute zero value after each problem is solved. 
  1568. Register 3 will contain the sum of the subtraction operations Odyssey2 will 
  1569. perform to find the quotient. 
  1570.  
  1571. 02 
  1572.  
  1573. Press 6B  Press ENTER  The door to Register B will be opened. 
  1574.  
  1575. 03 
  1576.  
  1577. Press 00  Press ENTER  Register B will be positioned to output at the far left 
  1578. of the screen. 
  1579.  
  1580. 04 
  1581.  
  1582. Press 70  Press ENTER  The number to be divided (the dividend) will go into 
  1583. Register 0 the dividend must always be larger than the divisor. 
  1584.  
  1585. 05 
  1586.  
  1587. Press C0  Press ENTER  The output channel to Register 0 is set to open. 
  1588.  
  1589. 06 
  1590.  
  1591. Press 69  Press ENTER  Register 9 will be opened for input. 
  1592.  
  1593. 07 
  1594.  
  1595. Press 2A  Press ENTER  2A is Op Code for (./.).  The division sign will go 
  1596. into Register 9. 
  1597.  
  1598. 08 
  1599.  
  1600. Press C9  Press ENTER  The output channel of Register 9 is set to open. 
  1601.  
  1602. 09 
  1603.  
  1604. Press 71  Press ENTER  The divisor will be loaded into Register 1. 
  1605.  
  1606. 10 
  1607.  
  1608. Press C1  Press ENTER  The output channel of Register 1 is instructed to open. 
  1609.  
  1610. 11 
  1611.  
  1612. Press 6A  Press ENTER  The door to Register A will be opened. 
  1613.  
  1614. 12 
  1615.  
  1616. Press 2B  Press ENTER  2B is Op Code for (=).  The equal sign will go into 
  1617. Register A. 
  1618.  
  1619. 13 
  1620.  
  1621. Press CA  Press ENTER  The Register A output channel is instructed to open. 
  1622.  
  1623. 14 
  1624.  
  1625. Press 91  Press ENTER  The Accumulator will be loaded with the contents of 
  1626. Register 1 which contains the divisor.  We are going to use a sample problem 
  1627. so the explanation will be easier (6/2=3).  The Accumulator will be loaded 
  1628. with the divisor (2). 
  1629.  
  1630. 15 
  1631.  
  1632. Press D0  Press ENTER  The contents of the Accumulator will be subtracted from 
  1633. the contents of Register 0 which contains the dividend (6). 
  1634.  
  1635. 16 
  1636.  
  1637. Press A0  Press ENTER  The difference (4) between the dividend and the divisor 
  1638. (6-2=4) will be stored in Register 0. 
  1639.  
  1640. 17 
  1641.  
  1642. Press 93  Press ENTER  The Accumulator will be loaded with the contents of 
  1643. Register 3.  This is the Register that was "initialized" at 00 so that we 
  1644. could keep track of the number of times we subtracted. 
  1645.  
  1646. 18 
  1647.  
  1648. Press 03  Press ENTER  A 1 will then be added to the Accumulator.  This is 
  1649. called an increment. 
  1650.  
  1651. 19 
  1652.  
  1653. Press A3  Press ENTER  The sum of the Accumulator is then stored in Register 
  1654. 3.  This Register now contains 01. 
  1655.  
  1656. 20 
  1657.  
  1658. Press 90  Press ENTER  The Accumulator will be loaded with the contents of 
  1659. Register 0.  Register 0 has been loaded with a value of 4, the difference 
  1660. between the dividend and the divisor.  The value was loaded into Register 0 in 
  1661. Program step 16. 
  1662.  
  1663. 21 
  1664.  
  1665. Press 13  Press ENTER  This will be the start of a branch operation. 
  1666.  
  1667. 22 
  1668.  
  1669. Press 40  Press ENTER  The computer wil branch to step 40 if the Accumulator 
  1670. equals 0.  Once the Accumulator equals 0, the problem is finished and Program 
  1671. step 40 will unpack the answer and it will be displayed on the screen. 
  1672.  
  1673. 23 
  1674.  
  1675. Press 91  Press ENTER  If the Accumulator does not equal 0, it will go to this 
  1676. program step.  The Accumulator will be loaded with the contents of Register 1 
  1677. which contains the divisor (2). 
  1678.  
  1679. 24 
  1680.  
  1681. Press 50  Press ENTER  Another branch operation will be started. 
  1682.  
  1683. 25 
  1684.  
  1685. Press 28  Press ENTER  The computer will be instructed to branch to program 
  1686. step 28 if Register 0 which contains the dividend (4) is less than the 
  1687. Accumulator which contains the divisor (2) from Register 1. 
  1688.  
  1689. 26 
  1690.  
  1691. Press 12  Press ENTER  This tells the computer to return to a previous step if 
  1692. Register 0 is not less than the Accumulator. 
  1693.  
  1694. 27 
  1695.  
  1696. Press 15  Press ENTER  This completes the return instructions.  The computer 
  1697. is programmed to return to step 15.  This step begins the subtraction 
  1698. operations which will continue until Register 0 is loaded into the Accumulator 
  1699. at step 21 and, the Accumulator equals 0 in this example.  When this condition 
  1700. is met, Odyssey2 will loop to Program step 40. 
  1701.  
  1702. 28 
  1703.  
  1704. Press 93  Press ENTER  This is the step your computer will branch to if a 
  1705. remainder is included.  The branching instructions were given in steps 24 and 
  1706. 25.  They programmed the computer to branch to step 28 if Register 0 which 
  1707. contains the dividend is less than the Accumulator which at this point, 
  1708. contains the divisor.  We will use 9/2=4+R as our sample problem.  All 
  1709. programsteps have been the same up to this point.  The computer has looped to 
  1710. step 15 several times.  Register 0 now contains 01 and the Accumulator 
  1711. contains 02.  This step will load the Accumulator from Register 3 which 
  1712. contains the number of times (2) has been subtracted from (9) which is (4). 
  1713.  
  1714. 29 
  1715.  
  1716. Press B4  Press ENTER  This instruction will unpack the answer. 
  1717.  
  1718. 30 
  1719.  
  1720. Press C4  Press ENTER  The first digit, stored in Register 4, will be 
  1721. displayed on the screen. 
  1722.  
  1723. 31 
  1724.  
  1725. Press C5  Press ENTER  The second digit, stored in Register 5, will be 
  1726. displayed on the screen. 
  1727.  
  1728. 32 
  1729.  
  1730. Press 66  Press ENTER  Register 6 will open. 
  1731.  
  1732. 33 
  1733.  
  1734. Press 10  Press ENTER  10 will be loaded into Register 6.  10 is the Op Code 
  1735. for (./.). 
  1736.  
  1737. 34 
  1738.  
  1739. Press 67  Press ENTER  Register 7 will be opened. 
  1740.  
  1741. 35 
  1742.  
  1743. Press 13  Press ENTER  13 will be loaded into Register 7.  13 is the Op Code 
  1744. for (R). 
  1745.  
  1746. 36 
  1747.  
  1748. Press C6  Press ENTER  The output channel for the (./.) sign will be opened. 
  1749.  
  1750. 37 
  1751.  
  1752. Press C7  Press ENTER  The output channel for (R) will open. 
  1753.  
  1754. 38 
  1755.  
  1756. Press 12  Press ENTER  The computer is instructed to return to a previous 
  1757. step.  
  1758.  
  1759. 39 
  1760.  
  1761. Press 00  Press ENTER  The computer will return to step 00 and be ready to 
  1762. solve a new problem.  Our program ends at this point if we have solved a 
  1763. problem that contains a remainder.  If not, as in our first example (6/2=3), 
  1764. we would have jumped from Program step 21 to Program step 40. 
  1765.  
  1766. 40 
  1767.  
  1768. Press 93  Press ENTER  The Accumulator will be loaded with the contents of 
  1769. Register 3.  It will contain the number of times the divisor has been 
  1770. subtracted from the dividend.  In step 21 the computer was programmed to 
  1771. branch to this step when the contents of the Accumulator equaled 0.  We were 
  1772. using 6/2 as our example so at this point Register 3 contains (3) ---the 
  1773. number of times (2) has been subtracted from (6). 
  1774.  
  1775. 41 
  1776.  
  1777. Press B4  Press ENTER  This unpacking operation will convert the answer from 
  1778. binary into decimal. 
  1779.  
  1780. 42 
  1781.  
  1782. Press C4  Press ENTER  The output channel of Register 4 will be opened for the 
  1783. first digit. 
  1784.  
  1785. 43 
  1786.  
  1787. Press C5  Press ENTER  The output channel of Register 5 will be opened for the 
  1788. second digit. 
  1789.  
  1790. 44 
  1791.  
  1792. Press 66  Press ENTER  Register 6 will open. 
  1793.  
  1794. 45 
  1795.  
  1796. Press 0C  Press ENTER  Register 6 will be loaded with 0C which is Op Code for 
  1797. a blank space. 
  1798.  
  1799. 46 
  1800.  
  1801. Press 67  Press ENTER  Register 7 will open. 
  1802.  
  1803. 47 
  1804.  
  1805. Press 0C  Press ENTER  Register 7 will be loaded with a blank space. 
  1806. Registers 6 and 7 have been loaded with blanks so that (+R) will not be 
  1807. displayed on the screen when this branch of the program is employed by the 
  1808. computer.  
  1809.  
  1810. 48 
  1811.  
  1812. Press C6  Press ENTER  The output channel from Register 6 will open. 
  1813.  
  1814. 49 
  1815.  
  1816. Press C7  Press ENTER  The output channel from Register 7 will open. 
  1817.  
  1818. 50 
  1819.  
  1820. Press 12  Press ENTER  The computer is instructed to return to a previous 
  1821. step.  
  1822.  
  1823. 51 
  1824.  
  1825. Press 00  Press ENTER  The computer is instructed to return to step 00 and be 
  1826. ready to solve another problem. 
  1827.  
  1828. Press RESET  The program is stored. 
  1829.  
  1830. Press E  The program is executed. 
  1831.  
  1832.  
  1833. One Digit Division 
  1834.  
  1835.  
  1836.      Hex    Assembler 
  1837. Step Code   Code       Byte   Remarks 
  1838. -----------------------------------------------------------------------------
  1839. 00   63 00  LDV.3.00    2     Reg. 3 = 00 (initialization) 
  1840. 02   6B 00  LDV.B.00    2     Reg. B = 00 (positioning) 
  1841. 04   70     INP.0       1     Dividend stored in Reg. 0 
  1842. 05   C0     OUT.0       1     Output Reg. 0 
  1843. 06   69 2A  LDV.9.2A    2     Symbol (./.) stored in Reg. 9 
  1844. 08   C9     OUT.9       1     Output Reg. 9 
  1845. 09   71     INP.1       1     Divisor stored in Reg. 1 
  1846. 10   C1     OUT.1       1     Output Reg. 1 
  1847. 11   6A 2B  LDV.A.2B    2     Symbol (=) stored in Reg. A 
  1848. 13   CA     OUT.A       1     Output Reg. A 
  1849. 14   91     LDA.1       1     Load Accum. from Reg. 1 
  1850. 15   D0     SUB.0       1     Sub Accum. from Reg. 0 
  1851. 16   A0     STO.0       1     Store difference in Reg. 0 
  1852. 17   93     LDA.3       1     Load Accum. from Reg. 3 
  1853. 18   03     INC         1     Add 1 to the Accum. 
  1854. 19   A3     STO.3       1     Store sum in Reg. 3 
  1855. 20   90     LDA.0       1     Load Accum. from Reg. 0 
  1856. 21   13 40  BRZ.40      2     Branch to step 40 if Accum. equals 0 
  1857. 23   91     LDA.1       1     Load Accum. from Reg. 1 
  1858. 24   50 28  BLS.0.28    2     Branch to step 28 if Reg. 0 is less than Accum.
  1859. 26   12 15  GTO.15      2     Go to step 15 
  1860. 28   93     LDA.3       1     Load Accum. from Reg. 3 
  1861. 29   B4     UNP.4       1     Unpack two digits 
  1862. 30   C4     OUT.4       1     Output 1st digit which is stored in Reg. 4 
  1863. 31   C5     OUT.5       1     Output 2nd digit which is stored in Reg. 5 
  1864. 32   66 10  LDV.6.10    2     Symbol (+) stored in Reg. 6 
  1865. 34   67 13  LDV.7.13    2     Symbol (R) stored in Reg. 7 
  1866. 36   C6     OUT.6       1     Output (+) sign 
  1867. 37   C7     OUT.7       1     Output (R) 
  1868. 38   12 00  GTO.00      2     Go to step 00 
  1869. 40   93     LDA.3       1     Load Accum. from Reg. 3 
  1870. 41   B4     UNP.4       1     Unpack two digits 
  1871. 42   C4     OUT.4       1     Output 1st digit from Reg. 4 
  1872. 43   C5     OUT.5       1     Output 2nd digit from Reg. 5 
  1873. 44   66 0C  LDV.6.0C    2     A blank is stored in Reg. 6 
  1874. 46   67 0C  LDV.7.0C    2     A blank is stored in Reg. 7 
  1875. 48   C6     OUT.6       1     Output blank 
  1876. 49   C7     OUT.7       1     Output blank 
  1877. 50   12 00  GTO.00      2     Branch to step 00 
  1878.  
  1879.  
  1880. Area Problems Using "Go to Subroutine" and "Return" 
  1881.  
  1882. This program gives you an example of how and when to use the instructions "Go 
  1883. to Subroutine" and "Return". 
  1884.  
  1885. A "Go to Subroutine" instruction tells the computer to branch to a specific 
  1886. program step which contains an operation you may wish to use several times in 
  1887. one program.  You can use the same operation several times without having to 
  1888. rewrite it.  When writing a prgram using this instruction, the next program 
  1889. step after the "Go to Subroutine" instruction must be reserved for returning 
  1890. from the Subroutine. 
  1891.  
  1892. A program having a "Go to Subroutine" instruction must have a "Return from 
  1893. Subroutine" instruction as well. 
  1894.  
  1895. After you enter this program, you will be able to find the area of a rectangle 
  1896. or the area of a triange.  First, enter the base measurement - then, enter the 
  1897. height measurement.  Press 1 to find the area of a rectangle.  (Base * Height 
  1898. = Area).  Press 2 to find the area of a triangle.  (Base * Height / 2 = Area). 
  1899.  
  1900. Before entering this program, refer to the program on pages 69 and 70 while we 
  1901. explain how it works. 
  1902.  
  1903. Program steps 00 through 08 will be the same for both problems. 
  1904.  
  1905. (00 through 08) Step 08 programs your selection of 1) rectangle area problem, 
  1906. or 2) triangle area problem to be loaded into the Accumulator.  First, we'll 
  1907. see what happens when 1 is loaded into the Accumulator. 
  1908.  
  1909. (09 and 10) Steps 09 and 10 instruct the computer to branch to Program step 13 
  1910. if the Accumulator (which contains 01) equals the contents of Register 1 
  1911. (which is 01).  If we had entered a 2, the computer would have proceeded from 
  1912. Program step 08 to Program steps 11 and 12. 
  1913.  
  1914. (13 and 14) Program steps 13 and 14 instruct the computer to go to step 66 
  1915. which starts the multiplication subroutine.  (Base * Height = Area of 
  1916. Rectangle)  
  1917.  
  1918. (66) Program step 66 loads the Accumulator with the contents of Register 3 
  1919. which contains the base (Step 06).  We'll use 8 as our example of the base 
  1920. measurement.  
  1921.  
  1922. (67) Program step 67 adds the contents of Register 3 (which contains the base 
  1923. measurement of 8 in our example) to the contents of the Accumulator which now 
  1924. also contains 8. 
  1925.  
  1926. (68) The contents of the Accumulator (8+8=16) are stored in Register 5. 
  1927.  
  1928. (69) The Accumulator is loaded with the contents of Register 4 which contains 
  1929. the height.  We'll use 3 as our example.  This data was entered into Register 
  1930. 4 in Program step 07. 
  1931.  
  1932. (70) In Program step 70, the Accumulator is decremented by 1.  (Remember, in 
  1933. multiplying, the multiplier is decremented by 1 with each addition operation 
  1934. until the multiplier equals 01). 
  1935.  
  1936. (71) The contents of the Accumulator (now 2) are loaded into Register 4. 
  1937.  
  1938. (72 through 73)  These instructions tell the computer to branch to Program 
  1939. step 77 if the contents of the Accumulator are equal to the contents of 
  1940. Register 1.  (Register 1 = 01).  This was accomplished in Program step 02. 
  1941.  
  1942. (74) If the Accumulator does not equal 01 at Program step 72, the Accumulator 
  1943. will move to Program step 75 and be loaded from Register 6 which contains 16. 
  1944.  
  1945. (75 and 76)  Go to step 67.  The addition process is repeated until the amount 
  1946. in the Accumulator is equal to the value of Register 1.  When this condition 
  1947. is achieved, the computer will branch to Program step 77 as instructed by 
  1948. Program steps 72 and 73. 
  1949.  
  1950. (77) The Accumulator is loaded from Register 5. (Register 5 now equals 24 
  1951. which is the answer.) 
  1952.  
  1953. (78)  Program step 78 instructs the computer to return from subroutine. 
  1954.  
  1955. This returns the computer to program step 15 which unpacks the contents of 
  1956. Register 5. 
  1957.  
  1958. Program steps 16 and 17 output the answer to the screen. 
  1959.  
  1960. Program step 18 tells the computer to go to the blanking operation at program 
  1961. step 58. 
  1962.  
  1963. Program steps 58 through 63 output blank spaces that erase the old problem and 
  1964. make room for a new one. 
  1965.  
  1966. Program step 64 tells the computer to return to step 00 and to get ready to 
  1967. solve a new problem. 
  1968.  
  1969.  
  1970. Now we'll see how this program computes the area of a triangle (Base * Height 
  1971. / 2 = Area of Triangle)  For our example, we'll use 6 as the base and 2 as the 
  1972. height. 
  1973.  
  1974. This time we will choose 2 (triangle routine) at Program step 08 to load into 
  1975. the Accumulator.  Since Program steps 09 and 10 do not apply, the computer 
  1976. will jump to Program step 11. 
  1977.  
  1978. Program step 11 instructs the Odyssey2 to branch to program step 20 for the 
  1979. triangle routine. 
  1980.  
  1981. Program 20 instructs the Odyssey2 to branch to step 66 for the multiply 
  1982. routine.  
  1983.  
  1984. Program steps 66 through 75 perform the addition operations and continue to 
  1985. loop until the Accumulator equals Register 1 (01).  Then the Odyssey2 branches 
  1986. to step 77. 
  1987.  
  1988. Program step 77 loads the Accumulator with Register 5, which holds the answer 
  1989. for B * H or 6 * 2 = 12.  We must now divide this answer by 2 to find the area 
  1990. of a triangle. 
  1991.  
  1992. Program step 78 instructs Odyssey2 to return to the program step immediately 
  1993. following the subroutine from which it branched originally. 
  1994.  
  1995. Program step 22 - a pause is implemented. 
  1996.  
  1997. Program step 23 stores Accumulator (which contains 12) in Register 3.  This 
  1998. now becomes the dividend. 
  1999.  
  2000. Program steps 24 and 25 load Register 4 with 02; this becomes the divisor. 
  2001.  
  2002. Program steps 26 ane 27 load Register 7 with 00.  This is the initialization 
  2003. operation, since this Register will hold the sum of the subtraction 
  2004. operations.  ("Initialization" was first introduced at the beginning of the 
  2005. One Digit Division Program.) 
  2006.  
  2007. Program step 28 loads Accumulator from Register 4 (which contains the divisor, 
  2008. 2). 
  2009.  
  2010. Program step 29 subtracts Accumulator from Register 3 (which contains the 
  2011. dividend, 12). 
  2012.  
  2013. Program step 30 stores the difference (12 - 2 = 10) in Register 3; Register 3 
  2014. = 10. 
  2015.  
  2016. Program step 31 loads Accumulator from Register 7; Register 7 = 00. 
  2017.  
  2018. Program step 32 adds one to the Accumulator.  Remember, this is done to keep 
  2019. track of the number of times we subtract the divisor from the dividend. 
  2020.  
  2021. Program step 33 stores sum in Register 7; Register 7 = 01. 
  2022.  
  2023. Program step 34 loads Accumulator from Register 3; Register 3 = 10, dividend. 
  2024.  
  2025. Program steps 35 and 36 order a branch to step 54 if Accumulator equals 00. 
  2026.  
  2027. Program step 37 loads Accumulator from Register 4; Register 4 = 2, divisor. 
  2028.  
  2029. Program steps 38 and 39 branch to step 42 if Register 3 is less than the 
  2030. Accumulator.  
  2031.  
  2032. Program step 40.  If the Odyssey2 has not branched at this point to another 
  2033. step number, this instruction loops the Odyssey2 back to Program step 29, so 
  2034. that additional subtraction operations can be performed. 
  2035.  
  2036. At Program step 35, the computer, after completing the subtraction operations 
  2037. so that the Accumulator and Register 3 (the dividend) equal 00, branches to 
  2038. step 54.*  At Program step 54, the Accumulator is loaded from Register 7 
  2039. (which contains the number of times we subtracted the answer).  Program step 
  2040. 55 then unpacks this answer and Program steps 56 and 57 output the answer to 
  2041. the screen.  Blanks are outputed, since in this example there is no remainder, 
  2042. and at step 64, the Odyssey2 is instructed to return to Program step 00 in 
  2043. preparation for a new problem. 
  2044.  
  2045. Now you're ready to enter the program into your Odyssey2.  Be sure to turn the 
  2046. power off and on to erase any previous data. 
  2047.  
  2048. *Note: If there had been a remainder, the computer would have branched at 
  2049. Program step 38 to step 42 and when the answer was unpacked and displayed on 
  2050. the screen, a (+R) would also have been displayed. 
  2051.  
  2052.  
  2053. "Go to Subroutine" and "Return" 
  2054.  
  2055.  
  2056.      Hex    Assembler 
  2057. Step Code   Code       Byte   Remarks 
  2058. ----------------------------------------------------------------------------
  2059. 00   6B 00  LDV.B.00    2     Reg. B = 00 (Positioning) 
  2060. 02   61 01  LDV.1.01    2     Area of rectangle - select (1) 
  2061. 04   62 02  LDV.2.02    2     Area of triangle - select (2) 
  2062. 06   73     INP.3       1     Input value (base) to Reg. 3 
  2063. 07   74     INP.4       1     Input value (height) to Reg. 4 
  2064. 08   04     INA         1     Select 1 or 2 
  2065. 09   31 13  BEQ.1.13    2     Go to rectangle routine 
  2066. 11   32 20  BEQ.2.20    2     Go to triangle routine 
  2067. 13   14 66  GTS.66      2     Go to multiply subroutine 
  2068. 15   B5     UNP.5       1     Unpack Reg. 5 and 6 
  2069. 16   C5     OUT.5       1     Output 1st digit 
  2070. 17   C6     OUT.6       1     Output 2nd digit 
  2071. 18   12 58  GTO.58      2     Go to blanking operation 
  2072. 20   14 66  GTS.66      2     Go to multiply subroutine 
  2073. 22   00     NOP         1     No operation (pause) 
  2074. 23   A3     STO.3       1     Store Accum. in Reg. 3 
  2075. 24   64 02  LDV.4.02    2     Load Reg. 4 with 02 
  2076. 26   67 00  LDV.7.00    2     Load Reg. 7 with 00 
  2077. 28   94     LDA.4       1     Load Accum. from Reg. 4 
  2078. 29   D3     SUB.3       1     Subtract Accum. from Reg. 3 
  2079. 30   A3     STO.3       1     Store difference in Reg. 3 
  2080. 31   97     LDA.7       1     Load Accum. from Reg. 7 
  2081. 32   03     INC         1     Add one to Accum. 
  2082. 33   A7     STO.7       1     Store sum in Reg. 7 
  2083. 34   93     LDA.3       1     Load Accum. from Reg. 3 
  2084. 35   13 54  BRZ.54      2     Branch to step 54 if A = 0 
  2085. 37   94     LDA.4       1     Load Accum. from Reg. 4 
  2086. 38   53 42  BLS.3.42    2     Branch to step 42 if Reg. 3 is less than Accum.
  2087. 40   12 29  GTO.29      2     Go to step 29 
  2088. 42   97     LDA.7       1     Load Accum. from Reg. 7 
  2089. 43   B8     UNP.8       1     Unpack Reg. 8 and Reg. 9 
  2090. 44   C8     OUT.8       1     Output 1st digit 
  2091. 45   C9     OUT.9       1     Output 2nd digit 
  2092. 46   6E 10  LDV.E.10    2     Load Reg. E with Symbol (+) 
  2093. 48   6F 13  LDV.F.13    2     Load Reg. F with Symbol (R) 
  2094. 50   CE     OUT.E       1     Output (+) 
  2095. 51   CF     OUT.F       1     Output (R) 
  2096. 52   12 58  GTO.58      2     Go to step 58 
  2097. 54   97     LDA.7       1     Load Accum. from Reg. 7 
  2098. 55   B8     UNP.8       1     Unpack Reg. 8 and Reg. 9 
  2099. 56   C8     OUT.8       1     Output 1st digit 
  2100. 57   C9     OUT.9       1     Output 2nd digit 
  2101. 58   6E 0C  LDV.E.0C    2     Load Reg. E with a blank 
  2102. 60   6F 0C  LDV.F.0C    2     Load Reg. F with a blank 
  2103. 62   CE     OUT.E       1     Output blank 
  2104. 63   CF     OUT.F       1     Output blank 
  2105. 64   12 00  GTO.00      2     Go to step 00 
  2106. 66   93     LDA.3       1     Load Accum. from Reg. 3 
  2107. 67   E3     ADD.3       1     Add Reg. 3 to Accum 
  2108. 68   A5     STO.5       1     Store Accum. in Reg. 5 
  2109. 69   94     LDA.4       1     Load Accum. from Reg. 4 
  2110. 70   02     DEC         1     Decrement Accum. by 1 
  2111. 71   A4     STO.4       1     Store Accum. in Reg. 4 
  2112. 72   31 77  BEQ.1.77    1     If Accum. = Reg. 1, branch to step 77 
  2113. 74   95     LDA.5       1     Load Accum. from Reg. 5 
  2114. 75   12 67  GTO.67      2     Go to step 67 
  2115. 77   95     LDA.5       1     Load Accum. from Reg. 5 
  2116. 78   07     RET         1     Return to subroutine 
  2117.  
  2118.  
  2119. One Digit Addition Flash Card 
  2120.  
  2121.  
  2122. When you enter this program, a Flash Card addition game will appear on your 
  2123. television set.  An unsolved addition problem flashes on the screen.  You 
  2124. enter the solution through the keyboard.  If the answer is less than 10, 
  2125. preface the number with a 0. 
  2126.  
  2127. This program is different from the Flash Card game which is already 
  2128. programmed in the computer.  In this program, the old problem is erased 
  2129. automatically and a new problem is displayed on the screen.  There is also a 
  2130. rather interesting reward for entering the correct answer.  Program steps 45 
  2131. through 61 input a computerized musical comedy production number.  Program 
  2132. steps 70 through 78 are the rests (pauses) in the melody. 
  2133.  
  2134. Program step 26 is a packing operation.  The data from Register 3 and 
  2135. Register 4 is combined and loaded into the Accumulator. 
  2136.  
  2137. Program steps 62 through 69 reset Register B to 00 so that it's ready for 
  2138. the next problem. 
  2139.  
  2140. Program steps 62 through 69 reset Register 3 to 00 so that it's ready for 
  2141. the next problem. [this line is an error in the doc] 
  2142.  
  2143.  
  2144. One Digit Addition Flash Card 
  2145.  
  2146.      Hex    Assembler 
  2147. Step Code   Code       Byte   Remarks 
  2148. ----------------------------------------------------------------------------
  2149. 00   6A 0C  LDV.A.0C    2     Load a blank into Reg. A 
  2150. 02   68 10  LDV.8.10    2     Load a (+) sign into Reg. 8 
  2151. 04   69 2B  LDV.9.2B    2     Load an (=) sign into Reg. 9 
  2152. 06   6C 2D  LDV.C.2D    2     Load (N) into Reg. C 
  2153. 08   6D 17  LDV.D.17    2     Load (O) into Reg. D 
  2154. 10   08     RND         1     Load Accum. with random number 
  2155. 11   B0     UNP.0       1     Separate digits 
  2156. 12   6B 00  LDV.B.00    2     Set output position 
  2157. 14   C0     OUT.0       1     Output first digit 
  2158. 15   C8     OUT.8       1     Output (+) sign 
  2159. 16   C1     OUT.1       1     Output second digit 
  2160. 17   00     NOP         1     A no operation instruction must follow every 
  2161.                               third output instruction in a row 
  2162. 18   C9     OUT.9       1     Output (=) sign 
  2163. 19   90     LDA.0       1     Load Accum. from Reg. 0 
  2164. 20   E1     ADD.1       1     Add Reg. to the Accum. 
  2165. 21   A2     STO.2       1     Store sum in Reg. 2 
  2166. 22   73     INP.3       1     Input first digit guess 
  2167. 23   C3     OUT.3       1     Output first digit guess 
  2168. 24   74     INP.4       1     Input second digit guess 
  2169. 25   C4     OUT.4       1     Output second digit guess 
  2170. 26   83     PAK.3       1     Combine digits.  This is a packing operation. 
  2171. 27   CA     OUT.A       1     Output blank 
  2172. 28   32 45  BEQ.2.45    2     If correct guess...buzz 
  2173. 30   CC     OUT.C       1     Output (N) 
  2174. 31   CD     OUT.D       1     Output (O) 
  2175. 32   6B 04  LDV.B.04    2     Set output position to 04 
  2176. 34   73     INP.3       1     Input first number of second guess 
  2177. 35   C3     OUT.3       1     Output first number 
  2178. 36   CA     OUT.A       1     Output blank 
  2179. 37   CA     OUT.A       1     Output blank 
  2180. 38   00     NOP         1     No operation 
  2181. 39   CA     OUT.A       1     Output blank 
  2182. 40   CA     OUT.A       1     Output blank 
  2183. 41   6B 05  LDV.B.05    2     Set output position to 05 
  2184. 43   12 24  GTO.24      2     Go to step 24 
  2185. 45   05     SIG         1     Buzz 
  2186. 46   14 70  GTS.70      2     No sound 
  2187. 48   05     SIG         1     Buzz 
  2188. 49   05     SIG         1     Buzz 
  2189. 50   05     SIG         1     Buzz 
  2190. 51   14 70  GTS.70      2     No sound 
  2191. 53   05     SIG         1     Buzz 
  2192. 54   14 70  GTS.70      2     No sound 
  2193. 56   14 70  GTS.70      2     No sound 
  2194. 58   05     SIG         1     Buzz 
  2195. 59   14 70  GTS.70      2     No sound 
  2196. 61   05     SIG         1     Buzz 
  2197. 62   6B 00  LDV.B.00    2     Set position to 00 
  2198. 64   CA     OUT.A       1     Output blank 
  2199. 65   9B     LDA.B       1     Load Accum. from Reg. B 
  2200. 66   13 10  BRZ.10      2     If Accum. = 0, the computer branches to step 10
  2201. 68   12 64  GTO.64      2     Go to step 64 
  2202. 70   67 00  LDV.7.00    2     Load Reg. 7 with 00 
  2203. 72   6E 75  LDV.E.75    2     Load Reg. E with 75 
  2204. 74   9E     LDA.E       1     Load Accum. from Reg. E 
  2205. 75   00     NOP         1     No operation 
  2206. 76   02     DEC         1     Subtract 1 from Accum. 
  2207. 77   27 75  BNE.7.75    2     Branch if Accum. is not = to Reg. 7 which  
  2208.                               contains 00 
  2209. 79   07     RET         1     Return from subroutine 
  2210.  
  2211.  
  2212. Three Ways to Enter and Output a Letter 
  2213.  
  2214. These three sample programs are presented to show you the three different  
  2215. instructions which can be used to input and output a letter on the screen. 
  2216.  
  2217. For the first example, we have chosen to input and display the letter "H" 
  2218. or 1D in HEX Code.  With this type of program, whatever is loaded into the 
  2219. register and is outputed to the screen will remain on the screen.  You cannot 
  2220. change it.  With this program, you could enter a complete message and have it 
  2221. remain on the screen. 
  2222.  
  2223. The second example uses the instructions, "Input to a Register" and "Output 
  2224. from a Register," but does not designate any particular value.  Thus, once the 
  2225. program is entered, any value can be entered and it will be displayed on the 
  2226. screen.  
  2227.  
  2228. The third example is similar to the second in that any value may be 
  2229. entered, but it is inputed to the Accumulator rather than to a register. 
  2230.  
  2231. You will note, in all three examples, the last instruction was "Input to a 
  2232. Register" which was used as a pause since no output instruction was indicated, 
  2233. thus only one keyboard depression could be made.  Now, try this - using 
  2234. example two or three, program the appropriate instruction sets in order to 
  2235. create a loop so that all 11 positions on the screen may be used.  (Hint! 
  2236. Refer bback to the addition programs.  Check to see how they let you keep 
  2237. entering one problem after another by returning to a previous program step.) 
  2238.  
  2239.  
  2240. Three Ways to Enter and Output a Letter (For this example, use "H") 
  2241.  
  2242.      Hex    Assembler 
  2243. Step Code   Code       Byte   Remarks 
  2244. -------------------------------------------------------------
  2245.  
  2246.  
  2247. 00   6B 00  LDV.B.00    2     Positioning 
  2248. 02   60 1D  LDV.0.1D    2     Load Reg. 0 with H 
  2249. 04   C0     OUT.0       1     Output Reg. 0 = H 
  2250. 05   71     INP.1       1     Input to Reg. 1 (used as pause)
  2251.  
  2252.  
  2253. 00   6B 00  LDV.B.00    2     Positioning 
  2254. 02   70     INP.0       1     Input Reg. 0 
  2255. 03   C0     OUT.0       1     Output Reg. 0 
  2256. 04   71     INP.1       1     Input Reg. 1 (pause) 
  2257.  
  2258.  
  2259. 00   6B 00  LDV.B.00    2     Positioning 
  2260. 02   04     INA         1     Input Accum. 
  2261. 03   0B     OTA         1     Output Accum. 
  2262. 04   71     INP.1       1     Input REg. 1 (pause) 
  2263.  
  2264.  
  2265. Six Letter Guess 
  2266.  
  2267. After Being entered, this program allows you to enter a six letter word into 
  2268. the Odyssey2.  Six dots appear on the screen and your opponent enters a 
  2269. letter.  If it is used in the word, it appears on the screen in the correct 
  2270. position.  If the letter does not appear in the word, nothing happens. 
  2271.  
  2272. Let's look at some of the program steps in detail: 
  2273.  
  2274. Program step 00 used as a flag or reference position.  01 is loaded into 
  2275. Register 7.  01 was chosen rather than 00 because 01 can only mean the decimal 
  2276. number 1 and nothing else, while 00 can be a number or the instruction "No 
  2277. Operation."  
  2278.  
  2279. Program steps 04, 05, and 06 input 1st letter into Register 9, load a dot 
  2280. into Register 1, output Register 1 to screen.  THis is an initialization 
  2281. process and steps 07 through 27 are the same.  This is done so that the six 
  2282. dots appear on the screen when the word is first inputed.  Note the Register 
  2283. Use column. 
  2284.  
  2285. Program steps 28 through 37 position Odyssey2 to 00 each time a guess is 
  2286. taken and output to the screen either the correct letter guessed or a dot. 
  2287.  
  2288. Program steps 38 and 39 instruct Odyssey2 to return to 00 if Accumulator 
  2289. equals the contents of Register 7.  The computer is now ready for a new game. 
  2290. (Note: This is a flag or reference point.) 
  2291.  
  2292. Program step 40 inputs a guess to the Accumulator.  It is compared to each 
  2293. register in Program steps 41 through 52. 
  2294.  
  2295. Program steps 53 and 54 instruct Odyssey2 to go to Program step 71 if a 
  2296. letter in the word is missing. 
  2297.  
  2298. Program steps 71 and 72 load Register 8 with a dot. 
  2299.  
  2300. Program step 73 loads the Accumulator from Register 8. 
  2301.  
  2302. Program steps 74 through 85 instruct Odyssey2 to branch to Program step 28 
  2303. if any register (1 through 6) is equal to the Accumulator (in other words, if 
  2304. the register still remains a dot.) 
  2305.  
  2306. Program steps 86 and 87 load Register 7 with a 2B (=).  This is a flag.* 
  2307.  
  2308. Program step 88 loads the Accumulator from Register 7. 
  2309.  
  2310. Program steps 89 and 90 sound the buzz which indicates the word has been 
  2311. displayed correctly. 
  2312.  
  2313. Program steps 91 and 92 instruct Odyssey2 to go to step 28 for positioning. 
  2314.  
  2315. Program steps 38 and 39 instruct Odyssey2 to return to 00 if Accumulator = 
  2316. Register 7. 
  2317.  
  2318. Program step 00 loads Register with 01 and game continues. 
  2319.  
  2320. * Note: the 2B (=) sign was used as a flag in this instance: however, any
  2321. sign could have been used instead.
  2322.  
  2323.  
  2324. Six Letter Guess 
  2325.  
  2326.  
  2327.      Hex    Assembler 
  2328. Step Code   Code       Byte   Remarks                   Register/Use 
  2329. -----------------------------------------------------------------------
  2330. 00   67 01  LDV.7.01    2     Reg. 7 is loaded with     01 
  2331.                               reference position (flag) 
  2332. 02   6B 00  LDV.B.00    2     Positioning               1 - 1st dot 
  2333. 04   79     INP.9       1     Input 1st letter          2 - 2nd dot 
  2334. 05   61 27  LDV.1.27    2     Read 1st dot              3 - 3rd dot 
  2335. 07   C1     OUT.1       1     1st dot on screen         4 - 4th dot 
  2336. 08   7A     INP.A       1     Input 2nd letter          5 - 5th dot 
  2337. 09   62 27  LDV.2.27    2     Read 2nd dot              6 - 6th dot 
  2338. 11   C2     OUT.2       1     2nd dot on screen         7 - 01 (flag) 
  2339. 12   7C     INP.C       1     Input 3rd letter          8 - 7th dot 
  2340. 13   63 27  LDV.3.27    2     Read 3rd dot              9 - 1st letter 
  2341. 15   C3     OUT.3       1     3rd dot on screen         A - 2nd letter 
  2342. 16   7D     INP.D       1     Input 4th letter          B - Positioning
  2343. 17   64 27  LDV.4.27    2     Read 4th dot              C - 3rd letter 
  2344. 19   C4     OUT.4       1     4th dot on screen         D - 4th letter 
  2345. 20   7E     INP.E       1     Input 5th letter          E - 5th letter 
  2346. 21   65 27  LDV.5.27    2     Read 5th dot              F - 6th letter 
  2347. 23   C5     OUT.5       1     5th dot on screen 
  2348. 24   7F     INP.F       1     Input 6th letter 
  2349. 25   66 27  LDV.6.27    2     Read 6th dot 
  2350. 27   C6     OUT.6       1     6th dot on screen 
  2351. 28   6B 00  LDV.B.00    2     Position on screen 
  2352. 30   C1     OUT.1       1     Put dots on screen 
  2353. 31   C2     OUT.2       1     Put dots on screen 
  2354. 32   C3     OUT.3       1     Put dots on screen 
  2355. 33   00     NOP         1     No operation 
  2356. 34   C4     OUT.4       1     Put dots on screen 
  2357. 35   C5     OUT.5       1     Put dots on screen 
  2358. 36   C6     OUT.6       1     Put dots on screen 
  2359. 37   00     NOP         1     No operation 
  2360. 38   37 00  BEQ.7.00    2     Reset 
  2361. 40   04     INA         1     Input guess to Accum. 
  2362. 41   39 55  BEQ.9.55    2     Letter in word 
  2363. 43   3A 58  BEQ.A.58    2     Letter in word 
  2364. 45   3C 61  BEQ.C.61    2     Letter in word 
  2365. 47   3D 64  BEQ.D.64    2     Letter in word 
  2366. 49   3E 67  BEQ.E.67    2     Letter in word 
  2367. 51   3F 70  BEQ.F.70    2     Letter in word 
  2368. 53   12 71  GTO.71      2     Wrong guess 
  2369. 55   A1     STO.1       1     1st letter correct 
  2370. 56   12 43  GTO.43      2     Check next position 
  2371. 58   A2     STO.2       1     2nd letter correct 
  2372. 59   12 45  GTO.45      2     Check next position 
  2373. 61   A3     STO.3       1     3rd letter correct 
  2374. 62   12 47  GTO.47      2     Check next position 
  2375. 64   A4     STO.4       1     4th letter correct 
  2376. 65   12 49  GTO.49      2     Check next position 
  2377. 67   A5     STO.5       1     5th letter correct 
  2378. 68   12 51  GTO.51      2     Check next position 
  2379. 70   A6     STO.6       1     6th letter correct 
  2380. 71   68 27  LDV.8.27    2     Load Reg. 8 with dot 
  2381. 73   98     LDA.8       1     Accum. is loaded from Reg. 8 
  2382.                               which contains a dot 
  2383. 74   31 28  BEQ.1.28    2     Position (Step 28) 
  2384. 76   32 28  BEQ.2.28    2     Position (Step 28) 
  2385. 78   33 28  BEQ.3.28    2     Position (Step 28) 
  2386. 80   34 28  BEQ.4.28    2     Position (Step 28) 
  2387. 82   35 28  BEQ.5.28    2     Position (Step 28) 
  2388. 84   36 28  BEQ.6.28    2     Position (Step 28) 
  2389. 86   67 2B  LDV.7.2B    2     Set flag to (=) 
  2390. 88   97     LDA.7       1     Accum. loaded from Reg. 7 
  2391.                               which contains 01 
  2392. 89   05     SIG         1 
  2393. 90   05     SIG         1 
  2394. 91   12 28  GTO.28      2     Positioning 
  2395.  
  2396.  
  2397. Message 
  2398.  
  2399. After being entered, this program allows you to press any number between 1 and 
  2400. 6 to call a programmed message to the screen.  In the program as it is 
  2401. written, we have entered six messages.  After studying the program, you can 
  2402. enter your own messages. 
  2403.  
  2404. You will note the first Program steps, 00 and 01, are load a value into 
  2405. Register 0 and the value is 90.  You will note that Program step 90 is the "No 
  2406. Operation" instruction after the last message, and that program steps 91 
  2407. through 96 are a relocation table.  The Hex Code at each of the program steps 
  2408. is the first program step number of each of the messges[sic].  It is this 
  2409. first instruction, "load a value into Register 0 and the vlaue is 90" which 
  2410. allows you to select any number between 1 and 6 to call a message to the 
  2411. screen.  Let's look at a few of the other instructions in the program. 
  2412.  
  2413. Program steps 02 and 03 load Register 1 with 0C (blank).  This blank will 
  2414. be used as the space between words in messages which have more than one word. 
  2415.  
  2416. Program step 04 inputs to the Accumulator; you may select 1,2,3,4,5,6, on 
  2417. the keyboard in order to call to the screen any one of six messages and 
  2418. whichever you choose will be inputed to the Accumulator. 
  2419.  
  2420. Program step 05 - add Register 0 to Accumulator.  In other words, if we had 
  2421. chosen number 2, the contents of Register 0 (which are 90) are added to the 
  2422. Accumulator (which is 2), thus 92 is now in the Accumulator. 
  2423.  
  2424. Program step 06 - store Accumulator in Register C; Register C now equals 92. 
  2425.   
  2426. Program step 07 - Register C moves the program counter to Program step 92, 
  2427. and the contents at Program step 92 (which are 36) are loaded into the 
  2428. Accumulator.  This is the "Move" instruction or "Load Accumulator from a 
  2429. program step."  Register C is always used with this instruction. 
  2430.  
  2431. Program step 08 - Store Accumulator (36) in Register C; C now equals 36. 
  2432.  
  2433. Program steps 09 and 10 load Register B (positioning) with the value 00 
  2434. (the furthest left position). 
  2435.  
  2436. Program steps 11 and 12 load Register 2 with the number 11 (the number of 
  2437. positions on the screen). 
  2438.  
  2439. Program steps 13 and 14 load Register 3 with 00 to be used as a reference. 
  2440.  
  2441. Program step 15 - load the Accumulator from Register 1; Register 1 equals a 
  2442. blank.  This begins the loop which erases an old message from the screen in 
  2443. preparation for a new message.  You will note program steps 15 through 21, 
  2444. load the Accumulator with a blank, output the blank, load the Accumulator from 
  2445. Register 2(11), decrement the Accumulator by 1, store the result in Register 
  2446. 2, and the Odyssey2 branches to step 15 if the Accumulator is not equal to 
  2447. Register 3 (00).  Remember, when erasing, each of the 11 positions must be 
  2448. filled with a blank. 
  2449.  
  2450. Program steps 22 and 23 load Register B with 00 (furthest left position). 
  2451. This is used to position Register B in preparation for a new message. 
  2452.  
  2453. Program step 24 takes the contents of Register C (36), moves to that 
  2454. program step (36) and loads the contents at that program step (14) into the 
  2455. Accumulator.  
  2456.   
  2457. Program steps 25 and 26: If the Accumulator equals 00 at this point, the 
  2458. Odyssey2 would branch to Program step 04, and prepare itself for a new 
  2459. message.  If the Accumulator contains a value (as in this example, it contains 
  2460. 14), then the Odyssey2 steps to Program step 27. 
  2461.  
  2462. Program step 27 outputs the contents of the Accumulator to the screen; a 
  2463. "T" appears.  Refer to your Hex Code chart. 
  2464.  
  2465. Program steps 28 and 29 instruct Odyssey2 to go to step 24 and loop through 
  2466. the previous instructions to display message.*  When the message is completed 
  2467. (note at the end of each message, there is a no operation instruction, 00), 
  2468. and the Odyssey2 steps to Program step 25, the Accumulator will be equal to 
  2469. Register 3 (00), and the Odyssey2 will brank to Program step 04 in preparation 
  2470. for a new message. 
  2471.  
  2472. *Note: When repeating the loop at Program step 24, the contents of Register C 
  2473. remain the same (36); however, the program counter increments by one each time 
  2474. so that the appropriate program step is reached. 
  2475.  
  2476.  
  2477. Message 
  2478.  
  2479.      Hex    Assembler 
  2480. Step Code   Code       Byte   Remarks                       Register/Use
  2481. --------------------------------------------------------------------------
  2482. 00   60 90  LDV.0.90    2     Location table                0 - 90 
  2483. 02   61 0C  LDV.1.0C    2     A blank is loaded into Reg. 1 1 - 0C (blank) 
  2484. 04   04     INA         1     Press 1,2,3,4,5, or 6         2 - 0B (11) 
  2485. 05   E0     ADD.0       1     Add Reg. 0 to Accum           3 - 00 
  2486. 06   AC     STO.C       1     Contents of Accum. are stored 4 
  2487.                               in Reg. C 
  2488. 07   09     MOV         1     Accum. is loaded with         5 
  2489.                               contents of Reg. C which is a 
  2490.                               program step number 
  2491. 08   AC     STO.C       1     Contents of Accum. is stored  6 
  2492.                               in Reg. C 
  2493. 09   6B 00  LDB.B.11    2     Load Reg. B with 00           7 
  2494.                               (positioning) 
  2495. 11   62 11  LDV.2.0B    2     Load Reg. 2 with the number   8 
  2496.                               11 (positions on screen)        
  2497. 13   63 00  LDV.3.00    2     Load Reg. 3 with 00           9 
  2498.                               (used as a reference) 
  2499. 15   91     LDA.1       1     Load Accum. from Reg. 1       A 
  2500. 16   0B     OTA         1     Output blank from Accum.      B 
  2501. 17   92     LDA.2       1     Load Accum. from Reg. 2       C 
  2502. 18   02     DEC         1     Decrement Accum. by 1         D 
  2503. 19   A2     STO.2       1     Store contents of Accum       E 
  2504.                               in Reg. 2 
  2505. 20   23 15  BNE.3.15    2     Loop to program step 15 and   F 
  2506.                               output more blanks if Accum. 
  2507.                               is not equal to Reg. 3 
  2508. 22   6B 00  LDV.B.00    2     Positioning of Reg. B 
  2509. 24   09     MOV         1     Reg. C moves to program step 
  2510.                               and loads contents at the 
  2511.                               program step into the Accum. 
  2512. 25   33 04  BEQ.3.04    2     Restart - if Accum. equals 00, 
  2513.                               return to step 04 
  2514. 27   0B     OTA         1     Output contents of Accum. 
  2515. 28   12 24  GTO.24      2     Go to step 24 to display message 
  2516. 30   1D     *           1     Output (H)
  2517. 31   12     *           1     Output (E)
  2518. 32   0E     *           1     Output (L)
  2519. 33   0E     *           1     Output (L)
  2520. 34   17     *           1     Output (O)
  2521. 35   00     *           1     End Mess. 1
  2522. 36   14     *           1     Output (T)
  2523. 37   20     *           1     Output (A)
  2524. 38   1F     *           1     Output (K)
  2525. 39   12     *           1     Output (E)
  2526. 40   0C     *           1     Blank
  2527. 41   20     *           1     Output (A)
  2528. 42   0C     *           1     Blank
  2529. 43   0E     *           1     Output (L)
  2530. 44   17     *           1     Output (O)
  2531. 45   17     *           1     Output (O)
  2532. 46   1F     *           1     Output (K)
  2533. 47   00     *           1     End Mess. 2
  2534. 48   13     *           1     Output (R)
  2535. 49   12     *           1     Output (E)
  2536. 50   26     *           1     Output (M)
  2537. 51   20     *           1     Output (A)
  2538. 52   13     *           1     Output (R)
  2539. 53   1F     *           1     Output (K)
  2540. 54   20     *           1     Output (A)
  2541. 55   25     *           1     Output (B)
  2542. 56   0E     *           1     Output (L)
  2543. 57   12     *           1     Output (E)
  2544. 58   00     *           1     End Mess. 3
  2545. 59   2D     *           1     Output (N)
  2546. 60   12     *           1     Output (E)
  2547. 61   11     *           1     Output (W)
  2548. 62   0C     *           1     Blank
  2549. 63   1B     *           1     Output (F)
  2550. 64   17     *           1     Output (O)
  2551. 65   13     *           1     Output (R)
  2552. 66   0C     *           1     Blank
  2553. 67   07     *           1     Output (7)
  2554. 68   08     *           1     Output (8)
  2555. 69   00     *           1     End Mess. 4
  2556. 70   18     *           1     Output (Q)
  2557. 71   15     *           1     Output (U)
  2558. 72   12     *           1     Output (E)
  2559. 73   19     *           1     Output (S)
  2560. 74   14     *           1     Output (T)
  2561. 75   16     *           1     Output (I)
  2562. 76   17     *           1     Output (O)
  2563. 77   2D     *           1     Output (N)
  2564. 78   19     *           1     Output (S)
  2565. 79   0D     *           1     Output (?)
  2566. 80   00     *           1     End Mess. 5
  2567. 81   23     *           1     Output (C)
  2568. 82   17     *           1     Output (O)
  2569. 83   26     *           1     Output (M)
  2570. 84   12     *           1     Output (E)
  2571. 85   0C     *           1     Blank
  2572. 86   25     *           1     Output (B)
  2573. 87   20     *           1     Output (A)
  2574. 88   23     *           1     Output (C)
  2575. 89   1F     *           1     Output (K)
  2576. 90   00     *           1     End Mess. 6
  2577. 91   30     *           1     Location table
  2578. 92   36     *           1     Location table
  2579. 93   48     *           1     Location table
  2580. 94   59     *           1     Location table
  2581. 95   70     *           1     Location table
  2582. 96   81     *           1     Location table
  2583.  
  2584. *When entering single letters and numbers, the Hex Code only is used,  
  2585. since there is no Assembler Code for them. 
  2586.  
  2587. You have now had some experience in entering programs and should have some  
  2588. insight into how a computer "thinks." 
  2589.  
  2590. You can get a deeper understanding of your Odyssey2's logic processes by 
  2591. trying to enter these programs without using the references. 
  2592.  
  2593. First, go back and review one of the shorter programs.  Enter it into the 
  2594. computer.  Use your reference at this stage - but study it for sequence of 
  2595. events, logic patterns and flow.  Then, go to one of the blank program sheets 
  2596. in the back of this book and try writing the program from scratch.  No 
  2597. peeking.  
  2598.  
  2599. Here are some things you'll want to keep in mind. 
  2600.  
  2601. Odyssey2 has 16 registers.  Each register has room for 8 bits of 
  2602. information.  
  2603.  
  2604. Your computer has a capacity of 99 program steps.  There are 11 positions 
  2605. available on the screen.  The contents of Register B position data on the 
  2606. screen. 
  2607.  
  2608. You can only output data to the screen from a register or the Accumulator. 
  2609.  
  2610. Keep the fold-outs open so you can refer to the instruction sets and check 
  2611. your data traffic patterns. 
  2612.  
  2613. As you begin to write these programs by yourself, you'll get used to 
  2614. thinking along a computer's logic lines.  You may want to try writing 
  2615. variations of the programs in this book.  You may even want to try creating 
  2616. original programs.  If something doesn't work, try it another way.  You're 
  2617. playing with electronic building blocks that have endless combinations of 
  2618. possibilities.  
  2619.  
  2620. Once you feel you have a good understanding of how Odyssey2 does its 
  2621. computing, consider yourself graduated with high honors.  If there's a 
  2622. computer store in your area, drop in and visit.  You'll find friendly 
  2623. professionals who are always ready to talk computers and share knowledge. 
  2624.  
  2625. And you now know far more than most people who walk in the door. 
  2626.  
  2627.  
  2628. Operating Mode Review 
  2629.  
  2630. There are eight operating modes in the Odyssey2.  They are: 
  2631.  
  2632. Command     Assembler 
  2633. Execution   Hex Input 
  2634. Display     Input 
  2635. Program     Roll 
  2636.  
  2637. Let's look at each in detail and refer to the operation diagram on the 
  2638. fold-out as you read about each mode. 
  2639.  
  2640.  
  2641. Command Mode 
  2642.  
  2643. To enter the Command Mode, you may press "Reset" or "Clear" if you are in 
  2644. any of the following modes: 
  2645.  
  2646. Assembler 
  2647. Display 
  2648. Hex Input 
  2649.  
  2650. If you are in the Execution Mode, to enter the Command Mode, press "Reset." 
  2651.  
  2652. Once in the Command Mode, you may enter the following modes: 
  2653.  
  2654. Execution 
  2655. Display 
  2656. Program 
  2657.  
  2658. by pressing: 
  2659. E - To enter the Exection Mode.  Program execution will begin with step00. 
  2660. You are ready to play your game, write your message, solve your problem, etc. 
  2661. if you have already entered your program. 
  2662.  
  2663. or by pressing: 
  2664. C - To enter the Continue Mode.  This mode is used to locate a problem within 
  2665. a register.  For example, let's assume we have a 40 step program that is not 
  2666. working correctly.  A branch decision was made at some lower step number and 
  2667. we would like to see if the correct branch was taken to the step number we had 
  2668. indicated, say Program step 14.  Using the Roll Mode, we would move to Program 
  2669. step 14 and replace the Op Code at that step number with a halt statement (Op 
  2670. Code FF).  To examine the contents of the program counter (which would contain 
  2671. the Program step 14, thus informing us of the correct branch), we would press 
  2672. "Clear" which returns us to the Command Mode.  We now press (P) to enter the 
  2673. Program Mode, then press (M) to enter the Hex Input Mode, and then press (R) 
  2674. to enter the Roll Mode.  We no must roll up (U) from step 00 to step 14 where 
  2675. the FF statement is located and replace it with the original Op Code.  We may 
  2676. now place an FF statement at some other step to check another part of the 
  2677. program.  Please note that only one FF statement at a time can be present in 
  2678. the program. 
  2679.  
  2680. or by pressing: 
  2681. D - To enter the Display Mode (to be explained in detail later). 
  2682.  
  2683. or by pressing: 
  2684. P - To enter the Program Mode (to be explained in detail later). 
  2685.  
  2686.  
  2687. Dispaly Mode 
  2688.  
  2689. To enter the Display Mode, press (D) from the Command Mode.  In this mode, 
  2690. you may display on the screen any register you wish to review.  This mode is 
  2691. often used to troubleshoot problems, since you can check the contents of each 
  2692. register.  
  2693.  
  2694. To check the registers you press: 
  2695.  
  2696. 0 To display the contents of Register 0
  2697. 1 To display the contents of Register 1
  2698. 2 To display the contents of Register 2
  2699. 3 To display the contents of Register 3
  2700. 4 To display the contents of Register 4
  2701. 5 To display the contents of Register 5
  2702. 6 To display the contents of Register 6
  2703. 7 To display the contents of Register 7
  2704. 8 To display the contents of Register 8
  2705. 9 To display the contents of Register 9
  2706. A To display the contents of Register A
  2707. B To display the contents of Register B
  2708. C To display the contents of Register C
  2709. D To display the contents of Register D
  2710. E To display the contents of Register E
  2711. F To display the contents of Register F
  2712. P To display the contents of the Program Counter
  2713. S To display the contents of the Subroutine Counter
  2714. X To display the contents of the Accumulator
  2715.  
  2716. To leave the Display Mode, press "Clear" or "Reset" to enter the Command 
  2717. Mode.  
  2718.  
  2719.  
  2720. Program Mode 
  2721.  
  2722. [Picture of P button and CLEAR button on the keyboard] 
  2723.  
  2724. To enter the Program Mode, press (P) from the Command Mode, or press 
  2725. "Clear" if you are in the Roll Mode. 
  2726.  
  2727. The Program Mode sets the Odyssey2 to accept a program.  From this mode, 
  2728. press (A) to enter Assembler Language or press (M) to enter Hex Language (Op 
  2729. Code).  
  2730.  
  2731. To leave the Program Mode, press "Reset" and you will enter the Command 
  2732. Mode, or you may leave the Program Mode by pressing (A) to enter the Assembler 
  2733. Mode or by pressing (M) to enter the Hex Input Mode. 
  2734.  
  2735.  
  2736. [Picture of A button on keyboard] 
  2737. Assembler Mode 
  2738.  
  2739. To enter the Assembler Mode, press (A) if you are in the Program Mode, or 
  2740. press "Clear" if you are already in the Input Momde. 
  2741.  
  2742. Once you have pressed (A), you are in the Assembler Mode and you may now 
  2743. press (I) to enter the Input Mode, or press (R) to enter the Roll Mode. 
  2744.  
  2745. To leave the Assembler Mode, press "Clear" or "Reset" to enter the Command 
  2746. Mode, or press any valid Assembler Mode command (i.e., [I] or [R]).  (Be sure 
  2747. to refer to the fold-out operational diagram.) 
  2748.  
  2749.  
  2750. [Picture of M button on keyboard] 
  2751. Hex Input Mode 
  2752.  
  2753. To enter the Hex Input Mode, press (M) if you are in the Program Mode or 
  2754. press "Clear" if you are in the Input Mode. 
  2755.  
  2756. Once in the Hex Input Mode, press (I) to enter the Input Mode, or press (R) 
  2757. to enter the Roll Mode. 
  2758.  
  2759. To leave Hex Input Mode, press "Clear" or "Reset" to enter Command Mode or 
  2760. press any valid Hex Input Mode command (i.e., [I] or [R]). 
  2761.  
  2762.  
  2763. [Picture of I button on keyboard] 
  2764. Input Mode 
  2765.  
  2766. To enter the Input Mode, press (I) if you are in either Assembler or Hex 
  2767. Input Mode. 
  2768.  
  2769. Once you are in the Input Mode, you may enter any assembler language 
  2770. instruction if you have entered from the Assembler Mode, or you may enter any 
  2771. HEX language instruction (Op Code) if you have entered from the Hex Input 
  2772. Mode.  The Input Mode is the mode in which you will enter your program. 
  2773.  
  2774. To leave the Input Mode, you may press "Reset" to enter the Command Mode, 
  2775. or press "Clear" to enter the Assembler or Hex Input Mode. 
  2776.  
  2777.  
  2778. [Picture of R button on keyboard] 
  2779. Roll Mode 
  2780.  
  2781. To enter the Roll Mode, press (R) if you are in either Assembler or Hex 
  2782. Input Mode. 
  2783.  
  2784. Once you are in the Roll Mode, you may press (U) to display the program 
  2785. steps from 00 to 99, or you may press (D) to display the program steps from 99 
  2786. to 00.  This mode is often used to check a program step to be sure it contains 
  2787. the correct data. 
  2788.  
  2789. To leave the Roll Mode, press "Clear" to enter the Assembler or Hex Input 
  2790. Mode. 
  2791.  
  2792. [Illustration of keyboard] 
  2793.  
  2794. How a Computer Adds 1 + 1 
  2795.  
  2796.  
  2797. |----------| 
  2798. |          | 
  2799. | 1 + 1 = ?| 
  2800. ------------ 
  2801.      ^ 
  2802.      |       1 
  2803. |----------|------>|------| 1          |---------|0 
  2804. |Keyboard  | +1|   |  Or  |----------->|   And   |-| 
  2805. |          |---|-->|      |      |---->|         | | 
  2806. ------------ | |   --------      |     ----------- | 
  2807.              | |                0|                 | 
  2808.              | | |-------| 1 |-------|             | 
  2809.              | ->|  And  |-->|  Not  |             | 
  2810.              --->|-------| | |-------|             | 
  2811.                            |                       | 
  2812.                            |--------------------|  | 
  2813.                                                 |  | 
  2814.                                                 v  v 
  2815.                       Symbol/Sound Generator |--------|  
  2816.                       converts Binary 10 into|   10   | 
  2817.                       decimal equivalent 2   |--------| 
  2818.                                                  | 
  2819.                                                  | 
  2820.                                                  v 
  2821.                                              |-----------| 
  2822.                                              | 1 + 1 = 2 | 
  2823.                                              |-----------| 
  2824.  
  2825.  
  2826.  
  2827. Glossary 
  2828.  
  2829.  
  2830. Glossary of Frequently Used Computer Terms 
  2831.  
  2832.  
  2833. [Illustration of a person working at an old style computer, with an arrow 
  2834. pointing at one of the tape drives] 
  2835.  
  2836. Accumulator.  A working register within a computer.  It is a small memory 
  2837. device that provides temporary data storage and/or instruction storage for the 
  2838. ALU.  It can also store the result of the ALU's operation and may be used as 
  2839. an operand source for the ALU. 
  2840.  
  2841. Applications.  A job given to the computer to do. 
  2842.  
  2843. Application Software.  Programs written for the computer. 
  2844.  
  2845. Arithmetic Logic Unit (ALU).  A part of the Central Processing Unit (CPU). 
  2846. The ALU accepts data from different sources, acts upon it, then outputs one 
  2847. result.  It is in the ALU that all arithmetic and logic operations are 
  2848. performed.  It is also known as the "number cruncher" since it's here that all 
  2849. binary data is acted upon. 
  2850.  
  2851. [Illustration of a 1 and a 0] 
  2852.  
  2853. Binary Numbers.  A number based on two digits.  1 and 0.  With enough 1's and 
  2854. 0s, any number can be expressed.  The inside of a computer is basically a 
  2855. series of on-off switches that turn on any electrical charge to express1. 
  2856. They turn off the electrical charge to express 0.  A computer performs binary 
  2857. calculations by sending these on-off signals thorugh logic gates which pass on 
  2858. information according to the rules built into them. 
  2859.  
  2860. The functions of these logic gates are called AND, OR and NOT. 
  2861.  
  2862. This diagram demonstrates how a computer's logic circuit adds 1 and 1. 
  2863.  
  2864. [An illustration, not the diagram referred to above, shows two arrows going 
  2865. through a couple of gates and terminating at a third.  The diagram referred to 
  2866. above is the flow chart reproduced above.] 
  2867.  
  2868. 1. Two electrical currents enter the logic circuit.  (Remember - the presence 
  2869. of the electricity signals 1.  The absence signals 0.) 
  2870.  
  2871. 2. The incoming currents flow to the OR gate at the top and to the first AND 
  2872. gate at the bottom.  The OR gate lets the current through because at least one 
  2873. of the circuits is carrying an electrical charge.  The AND gate lets the 
  2874. current through because both circuits are carrying a charge. 
  2875.  
  2876. 3. The current at the top heads to the second AND gate.  The bottom stream is 
  2877. divided with one part flowing to the exit and the other part heading toward 
  2878. the NOT gate. 
  2879.  
  2880. 4. A NOT gate is a "reverser."  It changes 1's to 0's and 0's to 1's.  The NOT 
  2881. gate turns off the current flowing through it. 
  2882.  
  2883. 5. The second AND gate senses the absence of current from the NOT gate and the 
  2884. presence of current coming to it from the OR gate. 
  2885.  
  2886. 6. Since one of the streams entering the second AND gate is charged and the 
  2887. other is not, the second AND gate will not allow any current to pass to the 
  2888. exit.  
  2889.  
  2890. 7. The original two electrical currents representing 1 and 1 come out of the 
  2891. logic circuit as only one stream o electrical current.  This is expressed as 1 
  2892. and 0 - the binary equivalent of 2. 
  2893.  
  2894. [Sideways illustration says 4 = 0100] 
  2895.  
  2896. Computers operate only on binary numbers.  A computer can add, subtract, 
  2897. multiply (by adding the same number repeatedly), and divide (by using 
  2898. subtraction and addition).  When a computer adds and subtracts binary numbers, 
  2899. there are several rules which it follows: 
  2900.  
  2901. Binary Addition: 
  2902.  
  2903. 0   0   1   1 
  2904. 0  +1  +0  +1 
  2905. -   -   -   - 
  2906. 0   1   1   0 with a carry of 1 
  2907.  
  2908. A carry bit is produced from the addition of 1+1.  Binary carries are treated 
  2909. in the same way as decimal carries; they are carried to the left. 
  2910.  
  2911. Example: 
  2912.  
  2913.               (1)  (1)(1)(1) 
  2914.  9 =  0  0  0  0    1  0  0  1 
  2915. +7 =  0  0  0  0    0  1  1  1 
  2916. ------------------------------ 
  2917. 16 =  0  0  0  1    0  0  0  0 
  2918.  
  2919.  
  2920. Binary Subtraction: 
  2921.  
  2922. 1. All ones in the subtrahend are changed to zeros and all zeros are changed 
  2923. to ones. 
  2924.  
  2925. 2. A one is then added to the least significant bit of the new subtrahend. 
  2926.  
  2927. 3. Add the result to the minuend and ignore the carry bit, if there is one. 
  2928.  
  2929. Example: 10 = 0000 1010 minuend 
  2930.          -5 = 0000 0101 subtrahend 
  2931.          ------------------------- 
  2932.           5 = 
  2933.  
  2934. Rule 1: 0000 0101 becomes 1111 1010 
  2935.  
  2936. Rule 2: 1111 1010 
  2937.        +        1 
  2938.        ---------- 
  2939.         1111 1011 
  2940.  
  2941. Rule 3: 0000 1010 
  2942.        +1111 1011 
  2943.        ---------- 
  2944.         0000 0101 
  2945.  
  2946. Listed below are some binary numbers and their decimal equivalents. 
  2947.  
  2948. Try adding and subtracting in binary.  It really works. 
  2949.  
  2950. 1=0001  5=0101    9=1001   13=1101 
  2951. 2=0010  6=0110   10=1010   14=1110 
  2952. 3=0011  7=0111   11=1011   15=1111 
  2953. 4=0100  8=1000   12=1100   16=0001 0000 
  2954.  
  2955. Basic. Beginners All-Purpose Symbolic Instruction Code.  This is one of the 
  2956. simplest programming languages and is in general use on many computers. 
  2957.  
  2958. Bit. The basic unit of information used by a computer.  A bit is a binary 
  2959. number.  1 or 0.  A simple pocket calculator may store less than a hundred 
  2960. bits of information.  A large computer may have somewhere between a billion 
  2961. and a trillion bits in storage. 
  2962.  
  2963. Byte. A byte is eight bits on smaller computers, such as your Odyssey2.  A 
  2964. byte can be twelve, sixteen or more bits on larger computers. 
  2965.  
  2966.  
  2967. [Illustration of a chip] 
  2968.  
  2969. Chip.  Nickname for Integrated Circuit. (IC) 
  2970.  
  2971. Cobol. Common Business-Oriented Language.   A computer programming language 
  2972. used widely in the business world. 
  2973.  
  2974. Computer System.  The computer and all of its related hardware.  Your Odyssey2 
  2975. system consists of the console, the computer cartridge and your TV - the video 
  2976. terminal. 
  2977.  
  2978. Control Unit.  The internal part of a computer that directs the binary 
  2979. traffic.  
  2980.  
  2981. Core Memory.  The internal memory of a computer.  Today, this memory consists 
  2982. of Integrated Circuits (IC's).  In the old days, the core memory was stored on 
  2983. magnetic cores made from tiny rings of magnetic material strung on a grid of 
  2984. fine wire. 
  2985.  
  2986. Central Processing Unit (CPU). This is the brain of the computer.  The CPU of 
  2987. your Odyssey2 is contained on a microprocessor which can make over 1,000,000 
  2988. electronic decisions every second. 
  2989.  
  2990. [Illustration shows an asterisk] 
  2991.  
  2992. Cursor.  A visual indicator on the video display terminal of some computers 
  2993. that signals where a character must be corrected or the position where data 
  2994. should be entered.  It is usually a star or an asterisk. 
  2995.  
  2996. Data.  Refers to all letters, numbers, symbols and facts which can be 
  2997. processed or used by a computer. 
  2998.  
  2999. External Memory.  That memory used by the computer which is not stored within 
  3000. the computer itself.  External memory is usually stored on cassette tape, 
  3001. floppy or hard disk, or paper tape. 
  3002.  
  3003. [Illustration shows rainbow colored paper tape] 
  3004.  
  3005. Firmware.  A combination of hardware and software.  This term is generally 
  3006. used in reference to software stored permanently on Read Only Memory chips 
  3007. (ROM).  
  3008.  
  3009. Floppy Disk.  It's thin, flexible and looks like a square record - a storage 
  3010. device that typically holds more than 250,000 eight bit bytes of information. 
  3011.  
  3012. Fortran.  FORmula TRANslator.  The most widely used scientific computer 
  3013. programming language. 
  3014.  
  3015. Hardware.  The physical devices that form a computer system - including all 
  3016. mechanical, magnetic, electronic, electromechanical and electric components. 
  3017. "Software" contains the instructions that tell all this what to do. 
  3018.  
  3019. High-Level Language.  Software that makes it possible to program a computer in 
  3020. more or less plain English.  Basic, Cobol and Fortran are all examples. 
  3021.  
  3022. Input.  The data entered into computers. 
  3023.  
  3024. Integrated Circuit (IC).  Many hundreds of electronic circuits on a single 
  3025. chip of silicon.  This circuitry can be contained in less than a quarter inch 
  3026. square and can make more than one million electronic decisions per second. 
  3027. There are no moving parts.  It is theoretically possible for an integrated 
  3028. circuit to function for thousands of years. 
  3029.  
  3030. Internal Memory.  Memory located within the computer itself. 
  3031.  
  3032. Interface.  Refers to the connection of one computer component to another. 
  3033. When your TV is connected to your Odyssey2, it is interfaced. 
  3034.  
  3035. Machine Language (Binary).  The instructions that a computer actually follows. 
  3036. High-level language instructions in Basic, Cobol and Fortran are broken down 
  3037. into machine language by the computer before they are executed. 
  3038.  
  3039. Maxicomputers.  The gian computers used by governments, insurance companies 
  3040. and businesses. 
  3041.  
  3042. Microcomputers.  Small computers with Central Processing Units contained on 
  3043. one single integrated circuit called a microprocessor. 
  3044.  
  3045. [Picture of a circuit board.] 
  3046.  
  3047. Microprocessor.  An integrated circuit that contains the complete central 
  3048. processing unit for a computer.  Today, microprocessors are designed by 
  3049. computer technology on a much larger than life scale.  Then, the circuits are 
  3050. transferred photographically to a chip of silicon less than one quarter of an 
  3051. inch square. 
  3052.  
  3053. Nonvolatile Memory.  That part of a computer's memory that is not lost when 
  3054. the computer is turned off. 
  3055.  
  3056. Output.  Information that comes out of a computer and is displayed on a screen 
  3057. (as with Odyssey2) or on a tape, floppy disc, print out, etc. 
  3058.  
  3059. Programmable Read Only Memory (PROM).  The nonvolatile memory stored on an 
  3060. integrated circuit from which the computer can read information.  The computer 
  3061. cannot store information on a PROM.  The PROM is programmable because the 
  3062. information stored on it can be changed one or more times depending on the 
  3063. type of PROM. 
  3064.  
  3065. Read Only Memory (ROM).  Permanent, nonvolatile memory stored on an integrated 
  3066. circuit (IC).  The computer cannot store information on a ROM but can read the 
  3067. information on it whenever necessary.  The ROM is not re-programmable and the 
  3068. information on it cannot be modified or changed. 
  3069.  
  3070. Random Access Memory (RAM).  This is the volatile memory of a computer which 
  3071. is stored on integrated circuits.  The computer can read the data stored on 
  3072. the chips - and new data can be entered onto the chips.  This information 
  3073. disappears when the current is turned off.  Think of the ROM as the computer's 
  3074. dictionary and encyclopedia and the RAM as the computer's scratch pad.  One is 
  3075. printed and kept forever.  The other is used as a worksheet and thrown away. 
  3076.  
  3077. [Some random text meant to represent software: 
  3078. 1.0C 
  3079. LDV.B.0 
  3080. 63 00 09 
  3081. 6B 00 
  3082. LDV.3.00 
  3083. 60 90 
  3084. LDV.0.90 
  3085. ADD.0] 
  3086.  
  3087. Software.  All of the instructions used by the computer to perform its 
  3088. functions.  This includes languages, operating systems and programs. 
  3089.  
  3090.  
  3091. Instruction Sets 
  3092.  
  3093.                    Hex   Assembler
  3094. Instruction        Code  Code   Byte Function
  3095. ------------------------------------------------------------------------------
  3096.  
  3097. Input
  3098.  
  3099. Input to Register    7R  INP.R    1  To store a value from the keyboard
  3100.                                      (symbol or numeral) in a specified
  3101.                                      register.
  3102. Input to Accumulator 04  INA      1  To input data from the keyboard (symbol
  3103.                                      or numeral) into the Accumulator.
  3104. ------------------------------------------------------------------------------
  3105.  
  3106. Output 
  3107.  
  3108. Output from Register CR  OUT.R    1  To display the contents of a specified  
  3109.                                      register on the television screen.  If 
  3110.                                      you have a series of output instructions, 
  3111.                                      one right after another, you must place a 
  3112.                                      "No Operation" instruction after every 
  3113.                                      third output instruction. 
  3114. Output from Accumulator 0B OTA    1  To display data stored in the Accumulator 
  3115.                                      on the television screen. 
  3116. One second Buzz      05  SIG      1  To implement a one second buzz. 
  3117. -------------------------------------------------------------------------------
  3118.  
  3119. Change Accumulator Contents 
  3120.  
  3121. Set to 0             01  CLR      1  To clear Accumulator and set its contents 
  3122.                                      to 0. 
  3123. Subtract 1           02  DEC      1  To decrement the contents of the 
  3124.                                      Accumulator by one. 
  3125. Add 1                03  INC      1  To increment the contents of the 
  3126.                                      Accumulator by one. 
  3127. Load with Random No. 08  RND      1  To load Accumulator with a random number 
  3128.                                      from 00 to 99. 
  3129. Load from Program Step 09 MOV     1  To load Accumulator with the contents 
  3130.                                      (two-digit value) contained in the 
  3131.                                      program step specified by Register C. 
  3132.                                      When using the MOV instruction in a 
  3133.                                      program, Register C must remain empty. 
  3134.                                      In other words, you should not program 
  3135.                                      any value in Register C. 
  3136. Combine 2 digits     8R  PAK.R    1  To combine two digits from two specified 
  3137.                                      registers in the Accumulator.  This 
  3138.                                      instruction is used when working with  
  3139.                                      numbers.  Since the microprocessor reads 
  3140.                                      the numbers in Binary, we must instruct 
  3141.                                      it to combine two digits in order to 
  3142.                                      produce and display a base 10 number. 
  3143.                                      The first regstier must always contain a 
  3144.                                      number less than ten. 
  3145. Separate 2 digitts   BR  UNP.R    1  To separate two digits in the Accumulator 
  3146.                                      and store them in two specified registers. 
  3147. Load from Register   9R  LDA.R    1  To load the Accumulator with the contents 
  3148.                                      of a specified register. 
  3149. Add Register         ER  ADD.R    1  To add the contents of a specified 
  3150.                                      Register (R) to the contents of the 
  3151.                                      Accumulator and to store the result in the 
  3152.                                      Accumulator.  If the result is larger 
  3153.                                      than two digits, only the lowest two 
  3154.                                      digits will be kept. 
  3155. -------------------------------------------------------------------------------
  3156.  
  3157. Change Register Contents 
  3158.  
  3159. Store Accumulator    AR  STO.R    1  To store contents of the Accumulator in a 
  3160.                                      specified register. 
  3161.  
  3162. Load A Value         6RNN LDV.R.NN 2 To load a value (NN) into a specified 
  3163.                                      register (R).  Registers may be 0 through 
  3164.                                      9 or A through F. 
  3165. -------------------------------------------------------------------------------
  3166.  
  3167. Control Execution Order 
  3168.  
  3169. No Operation         00  NOP      1  To implement a delay in execution of the 
  3170.                                      program.  Can be used when writing a 
  3171.                                      program to utilize several program steps, 
  3172.                                      so that when checking the program, if an 
  3173.                                      extra instruction step is needed, several 
  3174.                                      will be vacant. 
  3175. Halt                 FF  HLT      1  To halt exection of program in order to  
  3176.                                      enter a different operational mode to  
  3177.                                      check registers.  Used for trouble- 
  3178.                                      shooting.  The halt instruction is entered 
  3179.                                      after your program is entered.  In other 
  3180.                                      words, you would enter your complete 
  3181.                                      program, then, using the Roll Mode, you 
  3182.                                      would enter a halt instruction (FF) in 
  3183.                                      place of an instruction already 
  3184.                                      programmed.  After entering the Display 
  3185.                                      Mode and checking the registers for 
  3186.                                      errors, you would return to the program 
  3187.                                      step containing FF, clear it, and 
  3188.                                      re-enter the program step you had  
  3189.                                      removed.  (See Continue Mode description  
  3190.                                      in the Operating Mode Review.) 
  3191. Go to Subroutine     14NN GTS.NN  2  To instruct microprocessor to branch to a 
  3192.                                      specified program step (NN) which 
  3193.                                      contains an operation which you may wish 
  3194.                                      to use several times in one program. This 
  3195.                                      instruction set allows you to use the 
  3196.                                      same operation several times without 
  3197.                                      having to rewrite it.  The next 
  3198.                                      sequential step number is saved for 
  3199.                                      returning from the subroutine.  (See  
  3200.                                      sample program "Area Problems Using 
  3201.                                      Subroutine and Return.")  You must have a 
  3202.                                      "Return from Subroutine" when you have a 
  3203.                                      "Go to Subroutine." 
  3204. Return from Subroutine 07 RET     1  To instruct the microprocessor to return 
  3205.                                      to a specified program step.  This would 
  3206.                                      be the step immediately following the 
  3207.                                      instruction set "Go to Subroutine."  (See 
  3208.                                      sample program "Addition Flash Cards.")   
  3209.                                      Your must have a "Go to Subroutine" in 
  3210.                                      order to have a "Return from Subroutine." 
  3211.                                      [missing word and errors reproduced] 
  3212. -------------------------------------------------------------------------------
  3213.  
  3214. Branching Decision 
  3215.  
  3216. Branch on Decimal    10NN BDB.NN 2   To instruct the microprocessor to branch 
  3217. Borrow                               to the specified program step (NN) if the 
  3218.                                      high order bits of the Accumulator equal  
  3219.                                      a (9).* 
  3220. Branch on Decimal    11NN BDC.NN 2   To instruct the microprocessor to branch 
  3221. Carry                                to the specified program step (NN) if the 
  3222.                                      high order bits of the Accumulator do not 
  3223.                                      equal a (0).* 
  3224. Branch               12NN GTO.NN 2   To instruct the microprocessor to branch 
  3225. Unconditionally                      to a specified program step (NN).  (See 
  3226.                                      sample program "Message.") 
  3227. Branch if Accum.     13NN BRZ.NN 2   To instruct the microprocessor to move to 
  3228. is 0                                 another program step if conditions are 
  3229.                                      satisfied.  Most often used in arithmetic 
  3230.                                      problems.  (See 1 Digit Division.) 
  3231. Branch if Reg. not  2RNN BVNE.R.NN 2 To instruct microprocessor to branch to a 
  3232. = Accum.                             specified program step (NN) if Accum. is  
  3233.                                      not equal to a specified register (R). 
  3234.                                      (See sample program "Message.") 
  3235. Branch if Reg. =     3RNN BEQ.R.NN 2 To instruct microprocessor to branch to a 
  3236. Accum.                               specified program step (NN) if the  
  3237.                                      contents of the Accum. are equal to the 
  3238.                                      contents of the specified register (R). 
  3239.                                      (See sample programs "One Digit 
  3240.                                      Multiplication" and "Six Letter Guess.") 
  3241. Branch if Reg. is    4RNN BGT.R.NN 2 To instruct the microprocessor branch to  
  3242. greater than Accum.                  a specified program step (NN) if the 
  3243.                                      specified register (R) is greater than  
  3244.                                      the Accum. 
  3245. Branch if Reg. is    5RNN BLS.R.NN 2 To instruct the microprocessor to branch 
  3246. less than Accum.                     to a specified program step (NN) if the 
  3247.                                      specified register (R) isless than the 
  3248.                                      Accum. (See sample program "One Digit 
  3249.                                      Division.") 
  3250.  
  3251. * The Accumulator contains eight bits of data.  The first four are the high 
  3252. order bits and the last four are the low order bits. 
  3253.  
  3254.  
  3255. Program Sheets 
  3256.  
  3257.  
  3258. Program Name_____________Date_________________Page 
  3259.  
  3260.  
  3261. Step Hex   Assembler  Byte  Remarks                Register Use 
  3262.      Code  Code 
  3263.  
  3264. [There are 22 pages of blank program sheets] 
  3265.  
  3266.  
  3267. Odyssey2 
  3268. this gatefold will provide you with an electronic road map - please keep it 
  3269. open as you work with your Odyssey2 computer 
  3270.  
  3271.  
  3272. Keyboard 
  3273.  
  3274. [Illustration of keyboard] 
  3275.  
  3276.  
  3277. External Flow 
  3278.  
  3279.  
  3280. [Note: The chart uses colored arrows to indicate Reset and Clear.  I am 
  3281. labeling those arrows explicitly] 
  3282.  
  3283. |-----|   |----------------| 
  3284. |Reset|-->|Command Mode    |<-------------------------------------------------| 
  3285. |-----|   |                |<------------------------------------------------|| 
  3286.           | C  D     E   P-------------------------------------|             || 
  3287.           | |  |     |     |                                   |             || 
  3288.           | |  |     |     |<----------------------|           |             || 
  3289.           |-|--|-----|-----|<--------------------| |   |-----------------|   || 
  3290.             |  |   ^ | ^                         | |   |   Program Mode  |   || 
  3291.             |  |   | | |_______________          | ||--|    A        M   |-| || 
  3292.             |  |   | |_____________   |          | ||  |Assembler Machine| | || 
  3293.         |----  --| |               |  |Reset     | ||  |-----------------| | || 
  3294.         |        | |Clear        |--------------|| ||          ^           | || 
  3295. |-------------| |--------------| |Execution Mode|| ||          |      ------ || 
  3296. |Continue Mode| | Display Mode | |--------------|| ||          |      | -----|| 
  3297. |-------------| |(Step #FF must|                 | ||          |      | |     | 
  3298.                 |be inserted in|    |------------  ||     |----|      | |     | 
  3299.                 |program)      |    |         Clear|v     |           v |Clear| 
  3300.                 |------|-------|    | |--------------|    |  |--------------| | 
  3301.                        |            | |Assembler Mode|    |  |Hex Input Mode| | 
  3302.             |--------------------|  | |  I      R    |    |  |    R     I   | | 
  3303.             |0-9 Display Register|  | |Input  Roll   |    |  |   Roll  Input| | 
  3304.             |----------|---------|  | |--------------|    |  |--------------| | 
  3305.                        |            |   |   ^   |       Cl|ear     | ^    |   | 
  3306.             |----------|---------|  |   |   |   |     |---------|  | |    |   | 
  3307.             |A-F Display Register|  |   |   |   |---->|Roll Mode|<-| |    |   | 
  3308.             |----------|---------|  |   |   |         | D    U  |    |    |   | 
  3309.                        |            |   |   |         |Down  Up |    |    |   | 
  3310.             |----------|---------|  |----   |         |---------|    |    |   | 
  3311.             |P Display Program   |  ||    Cl|ear                   Cl|ear v   | 
  3312.             |       Counter      |  ||  |-----------------------------------| | 
  3313.             |----------|---------|  |-->|          Input Mode               | | 
  3314.                        |            ----|Assembler Language Machine Language| | 
  3315.             |----------|---------| Reset|                                   | | 
  3316.             |S Display Subroutine|      |------------|-|--------------------|-- 
  3317.             |       Counter      |         ^         v v                ^ Reset 
  3318.             |----------|---------|         |       |-----|              | 
  3319.                        |                   |-------|Enter|--------------|     
  3320.             |----------|----------|                |-----| 
  3321.             |X Display Accumulator| 
  3322.             |----------|----------| 
  3323.  
  3324.  
  3325. Legend 
  3326. Reset [Yellow block] Clear [Red block] 
  3327.  
  3328.  
  3329. Computer Symbols 
  3330.  
  3331. [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [:] [$] [ ] [?] [L] [P] [+] [W] [E] [R] 
  3332. 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  10  11  12  13 
  3333.  
  3334. [T] [U] [I] [O] [Q] [S] [D] [F] [G] [H] [J] [K] [A] [Z] [X] [C] [V] [B] [M] [.] 
  3335. 14  15  16  17  18  19  1A  1B  1C  1D  1E  1F  20  21  22  23  24  25  26  27 
  3336.  
  3337. [-] [Times sign] [Division sign] [=] [Y] [N] [/] [Solid block] [10] [Solid dot] 
  3338. 28  29           2A              2B  2C  2D  2E  2F            30   31 
  3339.  
  3340. [Man facing right] [Man walking right] [Man walking left] [Man facing left] 
  3341. 32                 33                  34                 35 
  3342.  
  3343. [Left arrow] [Up arrow] [Filled triangle lower right half] 
  3344. 36           37         38 
  3345.  
  3346. [Filled triangle lower left half] [Man facing forward] [\] [Submarine] [Plane] 
  3347. 39                                3A                   3B  3C          3D 
  3348.  
  3349. [Boat] 
  3350. 3E 
  3351.  
  3352.  
  3353. IB3389-1  AJ9406 
  3354.  
  3355. ODYSSEY2 
  3356.  
  3357. THE ULTIMATE COMPUTER VIDEO GAME SYSTEM...BY MAGNAVOX 
  3358.  
  3359.  
  3360. COMPUTER INTRO! 
  3361.  
  3362. It's not for everyone - but if you're up to a rewarding mental challenge, here 
  3363. is a fascinating entry point into a complex and highly technical subject. 
  3364. This cartridge turns your Odyssey2 into a special kind of computer.  It won't 
  3365. balance your checkbook or plot the course of a spaceship to Mars - but it will 
  3366. give you some idea of how those computers do their work.  You will learn how 
  3367. computers "think."  You will learn how to enter a program - the first step in 
  3368. learning how to actually write one.  Electronic road maps graphically show you 
  3369. where each byte of data goes - and what happens to it.  Then, you will 
  3370. actually run the program and see the exciting results on your TV.  Shut off 
  3371. the power and the old program is automatically erased so you can enter a new 
  3372. one immediately! 
  3373.  
  3374. (C) 1979 Maganvox Consumer Electronics Company  Odyssey is a trademark of the 
  3375. Magnavox Company. 
  3376.  
  3377.     
  3378.  
  3379.